9#include "../detail/type_half.hpp"
29 ((f >> 16) & 0x8000) |
30 ((((f & 0x7f800000) - 0x38000000) >> 13) & 0x7c00) |
48 ((((f & 0x7f800000) - 0x38000000) >> 17) & 0x07c0) |
66 ((((p & 0x07c0) << 17) + 0x38000000) & 0x7f800000) |
87 ((((f & 0x7f800000) - 0x38000000) >> 18) & 0x03E0) |
108 ((((p & 0x03E0) << 18) + 0x38000000) & 0x7f800000) |
109 ((p & 0x001f) << 18);
112 GLM_FUNC_QUALIFIER glm::uint half2float(glm::uint h)
114 return ((h & 0x8000) << 16) | ((( h & 0x7c00) + 0x1C000) << 13) | ((h & 0x03FF) << 13);
117 GLM_FUNC_QUALIFIER glm::uint floatTo11bit(
float x)
127 memcpy(&Pack, &x,
sizeof(Pack));
128 return float2packed11(Pack);
131 GLM_FUNC_QUALIFIER
float packed11bitToFloat(glm::uint x)
135 else if(x == ((1 << 11) - 1))
137 else if(x == (0x1f << 6))
140 uint Result = packed11ToFloat(x);
143 memcpy(&Temp, &Result,
sizeof(Temp));
147 GLM_FUNC_QUALIFIER glm::uint floatTo10bit(
float x)
157 memcpy(&Pack, &x,
sizeof(Pack));
158 return float2packed10(Pack);
161 GLM_FUNC_QUALIFIER
float packed10bitToFloat(glm::uint x)
165 else if(x == ((1 << 10) - 1))
167 else if(x == (0x1f << 5))
170 uint Result = packed10ToFloat(x);
173 memcpy(&Temp, &Result,
sizeof(Temp));
274 template<length_t L, qualifier Q>
278 template<qualifier Q>
283 int16
const Unpack(detail::toFloat16(v.x));
285 memcpy(&Packed, &Unpack,
sizeof(Packed));
292 memcpy(&Unpack, &v,
sizeof(Unpack));
297 template<qualifier Q>
302 vec<2, int16, Q> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y));
304 memcpy(&Packed, &Unpack,
sizeof(Packed));
311 memcpy(&Unpack, &v,
sizeof(Unpack));
316 template<qualifier Q>
321 vec<3, int16, Q> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z));
323 memcpy(&Packed, &Unpack,
sizeof(Packed));
330 memcpy(&Unpack, &v,
sizeof(Unpack));
331 return vec<3, float, Q>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z));
335 template<qualifier Q>
340 vec<4, int16, Q> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z), detail::toFloat16(v.w));
342 memcpy(&Packed, &Unpack,
sizeof(Packed));
349 memcpy(&Unpack, &v,
sizeof(Unpack));
350 return vec<4, float, Q>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z), detail::toFloat32(v.w));
357 return static_cast<uint8>(
round(clamp(v, 0.0f, 1.0f) * 255.0f));
362 float const Unpack(p);
363 return Unpack *
static_cast<float>(0.0039215686274509803921568627451);
368 u8vec2 const Topack(
round(clamp(v, 0.0f, 1.0f) * 255.0f));
371 memcpy(&Unpack, &Topack,
sizeof(Unpack));
378 memcpy(&Unpack, &p,
sizeof(Unpack));
379 return vec2(Unpack) * float(0.0039215686274509803921568627451);
384 int8 const Topack(
static_cast<int8>(
round(clamp(v ,-1.0f, 1.0f) * 127.0f)));
386 memcpy(&Packed, &Topack,
sizeof(Packed));
393 memcpy(&Unpack, &p,
sizeof(Unpack));
395 static_cast<float>(Unpack) * 0.00787401574803149606299212598425f,
401 i8vec2 const Topack(
round(clamp(v, -1.0f, 1.0f) * 127.0f));
403 memcpy(&Packed, &Topack,
sizeof(Packed));
410 memcpy(&Unpack, &p,
sizeof(Unpack));
412 vec2(Unpack) * 0.00787401574803149606299212598425f,
418 return static_cast<uint16>(
round(clamp(s, 0.0f, 1.0f) * 65535.0f));
423 float const Unpack(p);
424 return Unpack * 1.5259021896696421759365224689097e-5f;
429 u16vec4 const Topack(
round(clamp(v , 0.0f, 1.0f) * 65535.0f));
431 memcpy(&Packed, &Topack,
sizeof(Packed));
438 memcpy(&Unpack, &p,
sizeof(Unpack));
439 return vec4(Unpack) * 1.5259021896696421759365224689097e-5f;
444 int16 const Topack =
static_cast<int16>(
round(clamp(v ,-1.0f, 1.0f) * 32767.0f));
446 memcpy(&Packed, &Topack,
sizeof(Packed));
453 memcpy(&Unpack, &p,
sizeof(Unpack));
455 static_cast<float>(Unpack) * 3.0518509475997192297128208258309e-5f,
461 i16vec4 const Topack(
round(clamp(v ,-1.0f, 1.0f) * 32767.0f));
463 memcpy(&Packed, &Topack,
sizeof(Packed));
470 memcpy(&Unpack, &p,
sizeof(Unpack));
472 vec4(Unpack) * 3.0518509475997192297128208258309e-5f,
478 int16 const Topack(detail::toFloat16(v));
480 memcpy(&Packed, &Topack,
sizeof(Packed));
487 memcpy(&Unpack, &v,
sizeof(Unpack));
488 return detail::toFloat32(Unpack);
494 detail::toFloat16(v.x),
495 detail::toFloat16(v.y),
496 detail::toFloat16(v.z),
497 detail::toFloat16(v.w));
499 memcpy(&Packed, &Unpack,
sizeof(Packed));
506 memcpy(&Unpack, &v,
sizeof(Unpack));
508 detail::toFloat32(Unpack.x),
509 detail::toFloat32(Unpack.y),
510 detail::toFloat32(Unpack.z),
511 detail::toFloat32(Unpack.w));
558 ivec4 const Pack(
round(clamp(v,-1.0f, 1.0f) *
vec4(511.f, 511.f, 511.f, 1.f)));
561 Result.data.x = Pack.x;
562 Result.data.y = Pack.y;
563 Result.data.z = Pack.z;
564 Result.data.w = Pack.w;
573 vec4 const Result(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);
575 return clamp(Result *
vec4(1.f / 511.f, 1.f / 511.f, 1.f / 511.f, 1.f), -1.0f, 1.0f);
580 uvec4 const Unpack(
round(clamp(v, 0.0f, 1.0f) *
vec4(1023.f, 1023.f, 1023.f, 3.f)));
583 Result.data.x = Unpack.x;
584 Result.data.y = Unpack.y;
585 Result.data.z = Unpack.z;
586 Result.data.w = Unpack.w;
592 vec4 const ScaleFactors(1.0f / 1023.f, 1.0f / 1023.f, 1.0f / 1023.f, 1.0f / 3.f);
596 return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactors;
602 ((detail::floatTo11bit(v.x) & ((1 << 11) - 1)) << 0) |
603 ((detail::floatTo11bit(v.y) & ((1 << 11) - 1)) << 11) |
604 ((detail::floatTo10bit(v.z) & ((1 << 10) - 1)) << 22);
610 detail::packed11bitToFloat(v >> 0),
611 detail::packed11bitToFloat(v >> 11),
612 detail::packed10bitToFloat(v >> 22));
617 float const SharedExpMax = (
pow(2.0f, 9.0f - 1.0f) /
pow(2.0f, 9.0f)) *
pow(2.0f, 31.f - 15.f);
618 vec3 const Color = clamp(v, 0.0f, SharedExpMax);
621 float const ExpSharedP =
max(-15.f - 1.f,
floor(log2(MaxColor))) + 1.0f + 15.f;
622 float const MaxShared =
floor(MaxColor /
pow(2.0f, (ExpSharedP - 15.f - 9.f)) + 0.5f);
623 float const ExpShared =
equal(MaxShared,
pow(2.0f, 9.0f),
epsilon<float>()) ? ExpSharedP + 1.0f : ExpSharedP;
628 Unpack.data.x = ColorComp.x;
629 Unpack.data.y = ColorComp.y;
630 Unpack.data.z = ColorComp.z;
631 Unpack.data.w = uint(ExpShared);
640 return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) *
pow(2.0f, Unpack.data.w - 15.f - 9.f);
644 template<
typename T, qualifier Q>
645 GLM_FUNC_QUALIFIER vec<4, T, Q>
packRGBM(vec<3, T, Q>
const& rgb)
647 vec<3, T, Q>
const Color(rgb *
static_cast<T
>(1.0 / 6.0));
649 Alpha =
ceil(Alpha *
static_cast<T
>(255.0)) /
static_cast<T
>(255.0);
650 return vec<4, T, Q>(
Color / Alpha, Alpha);
653 template<
typename T, qualifier Q>
654 GLM_FUNC_QUALIFIER vec<3, T, Q>
unpackRGBM(vec<4, T, Q>
const& rgbm)
656 return vec<3, T, Q>(rgbm.x, rgbm.y, rgbm.z) * rgbm.w *
static_cast<T
>(6);
659 template<length_t L, qualifier Q>
665 template<length_t L, qualifier Q>
671 template<
typename u
intType, length_t L,
typename floatType, qualifier Q>
674 GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer,
"uintType must be an integer type");
675 GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559,
"floatType must be a floating point type");
677 return vec<L, uintType, Q>(
round(clamp(v,
static_cast<floatType
>(0),
static_cast<floatType
>(1)) *
static_cast<floatType
>(std::numeric_limits<uintType>::max())));
680 template<
typename floatType, length_t L,
typename u
intType, qualifier Q>
683 GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer,
"uintType must be an integer type");
684 GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559,
"floatType must be a floating point type");
686 return vec<L, float, Q>(v) * (
static_cast<floatType
>(1) /
static_cast<floatType
>(std::numeric_limits<uintType>::max()));
689 template<
typename intType, length_t L,
typename floatType, qualifier Q>
692 GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer,
"uintType must be an integer type");
693 GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559,
"floatType must be a floating point type");
695 return vec<L, intType, Q>(
round(clamp(v ,
static_cast<floatType
>(-1),
static_cast<floatType
>(1)) *
static_cast<floatType
>(std::numeric_limits<intType>::max())));
698 template<
typename floatType, length_t L,
typename intType, qualifier Q>
701 GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer,
"uintType must be an integer type");
702 GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559,
"floatType must be a floating point type");
704 return clamp(
vec<L, floatType, Q>(v) * (
static_cast<floatType
>(1) /
static_cast<floatType
>(std::numeric_limits<intType>::max())),
static_cast<floatType
>(-1),
static_cast<floatType
>(1));
709 u32vec2 const Unpack(
round(clamp(v, 0.0f, 1.0f) * 15.0f));
711 Result.data.x = Unpack.x;
712 Result.data.y = Unpack.y;
718 float const ScaleFactor(1.f / 15.f);
721 return vec2(Unpack.data.x, Unpack.data.y) * ScaleFactor;
726 u32vec4 const Unpack(
round(clamp(v, 0.0f, 1.0f) * 15.0f));
728 Result.data.x = Unpack.x;
729 Result.data.y = Unpack.y;
730 Result.data.z = Unpack.z;
731 Result.data.w = Unpack.w;
737 float const ScaleFactor(1.f / 15.f);
740 return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
747 Result.data.x = Unpack.x;
748 Result.data.y = Unpack.y;
749 Result.data.z = Unpack.z;
755 vec3 const ScaleFactor(1.f / 31.f, 1.f / 63.f, 1.f / 31.f);
758 return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
763 u32vec4 const Unpack(
round(clamp(v, 0.0f, 1.0f) *
vec4(31.f, 31.f, 31.f, 1.f)));
765 Result.data.x = Unpack.x;
766 Result.data.y = Unpack.y;
767 Result.data.z = Unpack.z;
768 Result.data.w = Unpack.w;
774 vec4 const ScaleFactor(1.f / 31.f, 1.f / 31.f, 1.f / 31.f, 1.f);
777 return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
784 Result.data.x = Unpack.x;
785 Result.data.y = Unpack.y;
786 Result.data.z = Unpack.z;
792 vec3 const ScaleFactor(1.f / 7.f, 1.f / 7.f, 1.f / 3.f);
795 return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
801 memcpy(&Pack, &v,
sizeof(Pack));
808 memcpy(&Unpack, &p,
sizeof(Unpack));
815 memcpy(&Pack, &v,
sizeof(Pack));
822 memcpy(&Unpack, &p,
sizeof(Unpack));
829 memcpy(&Pack, &v,
sizeof(Pack));
836 memcpy(&Unpack, &p,
sizeof(Unpack));
843 memcpy(&Pack, &v,
sizeof(Pack));
850 memcpy(&Unpack, &p,
sizeof(Unpack));
857 memcpy(&Pack, &v,
sizeof(Pack));
864 memcpy(&Unpack, &p,
sizeof(Unpack));
871 memcpy(&Pack, &v,
sizeof(Pack));
878 memcpy(&Unpack, &p,
sizeof(Unpack));
885 memcpy(&Pack, &v,
sizeof(Pack));
892 memcpy(&Unpack, &p,
sizeof(Unpack));
899 memcpy(&Pack, &v,
sizeof(Pack));
906 memcpy(&Unpack, &p,
sizeof(Unpack));
913 memcpy(&Pack, &v,
sizeof(Pack));
920 memcpy(&Unpack, &p,
sizeof(Unpack));
927 memcpy(&Pack, &v,
sizeof(Pack));
934 memcpy(&Unpack, &p,
sizeof(Unpack));
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Definition func_common.inl:655
GLM_FUNC_DECL vec< L, T, Q > ceil(vec< L, T, Q > const &x)
Definition func_common.inl:380
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Definition func_common.inl:613
GLM_FUNC_DECL vec< L, T, Q > round(vec< L, T, Q > const &x)
Definition func_common.inl:321
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Definition func_common.inl:307
GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y)
Definition func_common.inl:25
GLM_FUNC_QUALIFIER vec< L, T, Q > pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
Definition func_exponential.inl:72
GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec< L, bool, Q > equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Definition func_vector_relational.inl:40
vec< 4, float, defaultp > vec4
Definition vector_float4.hpp:15
vec< 3, float, defaultp > vec3
Definition vector_float3.hpp:15
vec< 2, float, defaultp > vec2
Definition vector_float2.hpp:15
vec< 4, unsigned int, defaultp > uvec4
Definition vector_uint4.hpp:15
vec< 4, int, defaultp > ivec4
Definition vector_int4.hpp:15
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
Definition scalar_constants.inl:6
detail::int16 int16
16 bit signed integer type.
Definition scalar_int_sized.hpp:61
detail::int64 int64
64 bit signed integer type.
Definition scalar_int_sized.hpp:67
detail::int8 int8
8 bit signed integer type.
Definition scalar_int_sized.hpp:58
detail::int32 int32
32 bit signed integer type.
Definition scalar_int_sized.hpp:64
detail::uint32 uint32
32 bit unsigned integer type.
Definition scalar_uint_sized.hpp:64
detail::uint8 uint8
8 bit unsigned integer type.
Definition scalar_uint_sized.hpp:58
detail::uint16 uint16
16 bit unsigned integer type.
Definition scalar_uint_sized.hpp:61
detail::uint64 uint64
64 bit unsigned integer type.
Definition scalar_uint_sized.hpp:67
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Definition constants.inl:102
GLM_FUNC_DECL int packInt2x16(i16vec2 const &v)
Definition packing.inl:854
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Definition packing.inl:514
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
Definition packing.inl:399
GLM_FUNC_DECL u8vec2 unpackUint2x8(uint16 p)
Definition packing.inl:819
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)
Definition packing.inl:524
GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const &v)
Definition packing.inl:615
GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const &v)
Definition packing.inl:780
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
Definition packing.inl:556
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const &v)
Definition packing.inl:743
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)
Definition packing.inl:545
GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p)
Definition packing.inl:635
GLM_FUNC_DECL uint64 packUint4x16(u16vec4 const &v)
Definition packing.inl:896
GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const &v)
Definition packing.inl:761
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)
Definition packing.inl:467
GLM_FUNC_DECL int64 packInt2x32(i32vec2 const &v)
Definition packing.inl:910
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm(vec< L, floatType, Q > const &v)
Definition packing.inl:672
GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)
Definition packing.inl:450
GLM_FUNC_DECL uint8 packSnorm1x8(float s)
Definition packing.inl:382
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)
Definition packing.inl:407
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
Definition packing.inl:578
GLM_FUNC_DECL uint8 packUnorm1x8(float v)
Definition packing.inl:355
GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)
Definition packing.inl:360
GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p)
Definition packing.inl:735
GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p)
Definition packing.inl:716
GLM_FUNC_DECL vec< L, intType, Q > packSnorm(vec< L, floatType, Q > const &v)
Definition packing.inl:690
GLM_FUNC_DECL vec< 4, T, Q > packRGBM(vec< 3, T, Q > const &rgb)
GLM_FUNC_DECL uint16 packUint2x8(u8vec2 const &v)
Definition packing.inl:812
GLM_FUNC_DECL uint64 packUint2x32(u32vec2 const &v)
Definition packing.inl:924
GLM_FUNC_DECL int16 packInt2x8(i8vec2 const &v)
Definition packing.inl:798
GLM_FUNC_DECL i8vec2 unpackInt2x8(int16 p)
Definition packing.inl:805
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm(vec< L, intType, Q > const &v)
Definition packing.inl:699
GLM_FUNC_DECL uint16 packUnorm1x16(float v)
Definition packing.inl:416
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm(vec< L, uintType, Q > const &v)
Definition packing.inl:681
GLM_FUNC_DECL i16vec4 unpackInt4x16(int64 p)
Definition packing.inl:875
GLM_FUNC_DECL i16vec2 unpackInt2x16(int p)
Definition packing.inl:861
GLM_FUNC_DECL i32vec2 unpackInt2x32(int64 p)
Definition packing.inl:917
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
Definition packing.inl:753
GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)
Definition packing.inl:390
GLM_FUNC_DECL vec< L, uint16, Q > packHalf(vec< L, float, Q > const &v)
Definition packing.inl:660
GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)
Definition packing.inl:421
GLM_FUNC_DECL u16vec2 unpackUint2x16(uint p)
Definition packing.inl:889
GLM_FUNC_DECL vec< L, float, Q > unpackHalf(vec< L, uint16, Q > const &p)
Definition packing.inl:666
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Definition packing.inl:491
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
Definition packing.inl:366
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)
Definition packing.inl:568
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)
Definition packing.inl:607
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
Definition packing.inl:599
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)
Definition packing.inl:375
GLM_FUNC_DECL u8vec4 unpackUint4x8(uint32 p)
Definition packing.inl:847
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
Definition packing.inl:459
GLM_FUNC_DECL float unpackHalf1x16(uint16 v)
Definition packing.inl:484
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p)
Definition packing.inl:772
GLM_FUNC_DECL u32vec2 unpackUint2x32(uint64 p)
Definition packing.inl:931
GLM_FUNC_DECL uint16 packHalf1x16(float v)
Definition packing.inl:476
GLM_FUNC_DECL int32 packInt4x8(i8vec4 const &v)
Definition packing.inl:826
GLM_FUNC_DECL uint16 packSnorm1x16(float v)
Definition packing.inl:442
GLM_FUNC_DECL int64 packInt4x16(i16vec4 const &v)
Definition packing.inl:868
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
Definition packing.inl:427
GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const &v)
Definition packing.inl:724
GLM_FUNC_DECL uint packUint2x16(u16vec2 const &v)
Definition packing.inl:882
GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const &v)
Definition packing.inl:707
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)
Definition packing.inl:503
GLM_FUNC_DECL uint32 packUint4x8(u8vec4 const &v)
Definition packing.inl:840
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p)
Definition packing.inl:790
GLM_FUNC_DECL i8vec4 unpackInt4x8(int32 p)
Definition packing.inl:833
GLM_FUNC_DECL u16vec4 unpackUint4x16(uint64 p)
Definition packing.inl:903
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Definition packing.inl:535
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)
Definition packing.inl:590
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)
Definition packing.inl:435
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM(vec< 4, T, Q > const &rgbm)
detail namespace with internal helper functions
Definition json.h:249
Core features
Definition common.hpp:21
Represents a color with red, green, blue, and alpha components.
Definition Color.h:10
Definition packing.inl:276
Definition qualifier.hpp:35
Definition packing.inl:251
Definition packing.inl:239
Definition packing.inl:183
Definition packing.inl:194
Definition packing.inl:204
Definition packing.inl:227
Definition packing.inl:216
Definition packing.inl:263