|
|
|
@ -146,13 +146,33 @@ namespace glm |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER uint packHalf2x16(detail::tvec2<float> const & v) |
|
|
|
|
{ |
|
|
|
|
detail::tvec2<detail::hdata> Pack(detail::toFloat16(v.x), detail::toFloat16(v.y)); |
|
|
|
|
union helper |
|
|
|
|
{ |
|
|
|
|
uint other; |
|
|
|
|
struct |
|
|
|
|
{ |
|
|
|
|
detail::hdata a, b; |
|
|
|
|
} orig; |
|
|
|
|
} Pack; |
|
|
|
|
|
|
|
|
|
Pack.orig.a = detail::toFloat16(v.x); |
|
|
|
|
Pack.orig.b = detail::toFloat16(v.y); |
|
|
|
|
return *(uint*)&Pack; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER vec2 unpackHalf2x16(uint const & v) |
|
|
|
|
{ |
|
|
|
|
detail::tvec2<detail::hdata> Unpack = *(detail::tvec2<detail::hdata>*)&v; |
|
|
|
|
return vec2(detail::toFloat32(Unpack.x), detail::toFloat32(Unpack.y)); |
|
|
|
|
union helper |
|
|
|
|
{ |
|
|
|
|
uint other; |
|
|
|
|
struct |
|
|
|
|
{ |
|
|
|
|
detail::hdata a, b; |
|
|
|
|
} orig; |
|
|
|
|
} Unpack; |
|
|
|
|
Unpack.other = v; |
|
|
|
|
|
|
|
|
|
return vec2(detail::toFloat32(Unpack.orig.a), detail::toFloat32(Unpack.orig.b)); |
|
|
|
|
} |
|
|
|
|
}//namespace glm |
|
|
|
|
|
|
|
|
|