Fixed merge

This commit is contained in:
Christophe Riccio 2011-08-04 22:50:28 +01:00
commit 535806abf9
6 changed files with 191 additions and 173 deletions

View File

@ -3,6 +3,7 @@
<glm copyright="Copyright © 2005 - 2011"> <glm copyright="Copyright © 2005 - 2011">
<downloads> <downloads>
<section name="GLM - zip files"> <section name="GLM - zip files">
<download name="GLM 0.9.2.4" date="04/08/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download"/>
<download name="GLM 0.9.2.3" date="08/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download"/> <download name="GLM 0.9.2.3" date="08/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download"/>
<download name="GLM 0.9.2.2" date="02/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download"/> <download name="GLM 0.9.2.2" date="02/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download"/>
<download name="GLM 0.9.2.1" date="24/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download"/> <download name="GLM 0.9.2.1" date="24/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download"/>
@ -66,6 +67,7 @@
<download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/> <download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/>
</section> </section>
<section name="GLM - 7z files"> <section name="GLM - 7z files">
<download name="GLM 0.9.2.4" date="04/08/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download"/>
<download name="GLM 0.9.2.3" date="08/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download"/> <download name="GLM 0.9.2.3" date="08/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download"/>
<download name="GLM 0.9.2.2" date="02/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download"/> <download name="GLM 0.9.2.2" date="02/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download"/>
<download name="GLM 0.9.2.1" date="24/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download"/> <download name="GLM 0.9.2.1" date="24/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download"/>
@ -156,9 +158,19 @@
</todo> </todo>
<page_news> <page_news>
<news index="0069" date="04/08/2011" title="GLM 0.9.2.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
Fixed few bugs reported by GLM users. Thanks!
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download">GLM 0.9.2.4 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download">GLM 0.9.2.4 (7z)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0068" date="08/06/2011" title="GLM 0.9.2.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png"> <news index="0068" date="08/06/2011" title="GLM 0.9.2.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph> <paragraph>
This version only fixes a couple a major bugs introduced in GLM 0.9.2.2. This version only fixes a couple of major bugs introduced in GLM 0.9.2.2.
</paragraph> </paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3 (zip)</source> <source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3 (zip)</source>

View File

@ -37,7 +37,7 @@ namespace detail
{ {
class thalf; class thalf;
#if(__STDC_VERSION__ >= 199901L) // C99 detected, 64 bit types available #if(__STDC_VERSION__ && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
typedef int64_t sint64; typedef int64_t sint64;
typedef uint64_t uint64; typedef uint64_t uint64;
#elif(GLM_COMPILER & GLM_COMPILER_VC) #elif(GLM_COMPILER & GLM_COMPILER_VC)

View File

@ -79,7 +79,7 @@ namespace detail
// Convertions // Convertions
//explicit tquat(valType const & pitch, valType const & yaw, valType const & roll); //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
//! pitch, yaw, roll //! Build a quaternion from euler angles (pitch, yaw, roll), in radians.
explicit tquat( explicit tquat(
tvec3<T> const & eulerAngles); tvec3<T> const & eulerAngles);
explicit tquat( explicit tquat(

View File

@ -490,7 +490,8 @@ namespace detail{
typename detail::tquat<T>::value_type AngleRad = radians(angle); typename detail::tquat<T>::value_type AngleRad = radians(angle);
typename detail::tquat<T>::value_type fSin = sin(AngleRad * T(0.5)); typename detail::tquat<T>::value_type fSin = sin(AngleRad * T(0.5));
return cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin)); return q * detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin);
//return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
} }
template <typename T> template <typename T>

View File

@ -201,9 +201,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_rgbx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec3 f16_rgbx_cast<uint32>(uint32 color)
{ {
f16vec3 result; f16vec3 result;
result.x = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.x = gtc::type_precision::f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.y = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.z = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -211,9 +211,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_xrgb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec3 f16_xrgb_cast<uint32>(uint32 color)
{ {
f16vec3 result; f16vec3 result;
result.x = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.x = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.y = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.z = gtc::type_precision::f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -221,9 +221,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_bgrx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec3 f16_bgrx_cast<uint32>(uint32 color)
{ {
f16vec3 result; f16vec3 result;
result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -231,9 +231,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_xbgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec3 f16_xbgr_cast<uint32>(uint32 color)
{ {
f16vec3 result; f16vec3 result;
result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -241,10 +241,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_rgba_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec4 f16_rgba_cast<uint32>(uint32 color)
{ {
f16vec4 result; f16vec4 result;
result.x = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -252,10 +252,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_argb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec4 f16_argb_cast<uint32>(uint32 color)
{ {
f16vec4 result; f16vec4 result;
result.x = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -263,10 +263,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_bgra_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec4 f16_bgra_cast<uint32>(uint32 color)
{ {
f16vec4 result; f16vec4 result;
result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -274,10 +274,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_abgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER f16vec4 f16_abgr_cast<uint32>(uint32 color)
{ {
f16vec4 result; f16vec4 result;
result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255)); result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255)); result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255)); result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255)); result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result; return result;
} }
@ -291,9 +291,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint32>(uint32 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(255); result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255); result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 16) / static_cast<float>(255); result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -301,9 +301,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint32>(uint32 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 8) / static_cast<float>(255); result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255); result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 24) / static_cast<float>(255); result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -311,9 +311,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint32>(uint32 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(255); result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255); result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 0) / static_cast<float>(255); result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -321,9 +321,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint32>(uint32 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 24) / static_cast<float>(255); result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255); result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 8) / static_cast<float>(255); result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -331,10 +331,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint32>(uint32 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(255); result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255); result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 16) / static_cast<float>(255); result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>(color >> 24) / static_cast<float>(255); result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -342,10 +342,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint32>(uint32 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 8) / static_cast<float>(255); result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255); result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 24) / static_cast<float>(255); result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>(color >> 0) / static_cast<float>(255); result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -353,10 +353,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint32>(uint32 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(255); result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255); result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 0) / static_cast<float>(255); result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>(color >> 24) / static_cast<float>(255); result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -364,10 +364,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint32>(uint32 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 24) / static_cast<float>(255); result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255); result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>(color >> 8) / static_cast<float>(255); result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>(color >> 0) / static_cast<float>(255); result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result; return result;
} }
@ -381,9 +381,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint32>(uint32 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(255); result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255); result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 16) / static_cast<double>(255); result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -391,9 +391,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint32>(uint32 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 8) / static_cast<double>(255); result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255); result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 24) / static_cast<double>(255); result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -401,9 +401,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint32>(uint32 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(255); result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255); result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 0) / static_cast<double>(255); result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -411,9 +411,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint32>(uint32 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 24) / static_cast<double>(255); result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255); result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 8) / static_cast<double>(255); result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -421,10 +421,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint32>(uint32 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(255); result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255); result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 16) / static_cast<double>(255); result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>(color >> 24) / static_cast<double>(255); result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -432,10 +432,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint32>(uint32 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 8) / static_cast<double>(255); result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255); result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 24) / static_cast<double>(255); result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>(color >> 0) / static_cast<double>(255); result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -443,10 +443,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint32>(uint32 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(255); result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255); result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 0) / static_cast<double>(255); result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>(color >> 24) / static_cast<double>(255); result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -454,10 +454,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint32>(uint32 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint32>(uint32 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 24) / static_cast<double>(255); result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255); result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>(color >> 8) / static_cast<double>(255); result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>(color >> 0) / static_cast<double>(255); result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result; return result;
} }
@ -471,9 +471,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_rgbx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_rgbx_cast<uint64>(uint64 color)
{ {
detail::tvec3<detail::thalf> result; detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -481,9 +481,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xrgb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xrgb_cast<uint64>(uint64 color)
{ {
detail::tvec3<detail::thalf> result; detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -491,9 +491,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_bgrx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_bgrx_cast<uint64>(uint64 color)
{ {
detail::tvec3<detail::thalf> result; detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -501,9 +501,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xbgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xbgr_cast<uint64>(uint64 color)
{ {
detail::tvec3<detail::thalf> result; detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -511,10 +511,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_rgba_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_rgba_cast<uint64>(uint64 color)
{ {
detail::tvec4<detail::thalf> result; detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -522,10 +522,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_argb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_argb_cast<uint64>(uint64 color)
{ {
detail::tvec4<detail::thalf> result; detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -533,10 +533,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_bgra_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_bgra_cast<uint64>(uint64 color)
{ {
detail::tvec4<detail::thalf> result; detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -544,10 +544,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_abgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_abgr_cast<uint64>(uint64 color)
{ {
detail::tvec4<detail::thalf> result; detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535)); result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535)); result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535)); result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535)); result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result; return result;
} }
@ -561,9 +561,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint64>(uint64 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(65535); result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535); result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 32) / static_cast<float>(65535); result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -571,9 +571,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint64>(uint64 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(65535); result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535); result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 48) / static_cast<float>(65535); result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -581,9 +581,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint64>(uint64 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 32) / static_cast<float>(65535); result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535); result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 0) / static_cast<float>(65535); result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -591,9 +591,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint64>(uint64 color)
{ {
detail::tvec3<float> result; detail::tvec3<float> result;
result.x = static_cast<float>(color >> 48) / static_cast<float>(65535); result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535); result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 16) / static_cast<float>(65535); result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -601,10 +601,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint64>(uint64 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(65535); result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535); result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 32) / static_cast<float>(65535); result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 48) / static_cast<float>(65535); result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -612,10 +612,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint64>(uint64 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(65535); result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535); result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 48) / static_cast<float>(65535); result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 0) / static_cast<float>(65535); result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -623,10 +623,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint64>(uint64 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 32) / static_cast<float>(65535); result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535); result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 0) / static_cast<float>(65535); result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 48) / static_cast<float>(65535); result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -634,10 +634,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint64>(uint64 color)
{ {
detail::tvec4<float> result; detail::tvec4<float> result;
result.x = static_cast<float>(color >> 48) / static_cast<float>(65535); result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535); result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 16) / static_cast<float>(65535); result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 0) / static_cast<float>(65535); result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result; return result;
} }
@ -651,9 +651,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint64>(uint64 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(65535); result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535); result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 32) / static_cast<double>(65535); result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -661,9 +661,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint64>(uint64 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(65535); result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535); result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 48) / static_cast<double>(65535); result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -671,9 +671,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint64>(uint64 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 32) / static_cast<double>(65535); result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535); result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 0) / static_cast<double>(65535); result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -681,9 +681,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint64>(uint64 color)
{ {
detail::tvec3<double> result; detail::tvec3<double> result;
result.x = static_cast<double>(color >> 48) / static_cast<double>(65535); result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535); result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 16) / static_cast<double>(65535); result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -691,10 +691,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint64>(uint64 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(65535); result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535); result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 32) / static_cast<double>(65535); result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 48) / static_cast<double>(65535); result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -702,10 +702,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint64>(uint64 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(65535); result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535); result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 48) / static_cast<double>(65535); result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 0) / static_cast<double>(65535); result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -713,10 +713,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint64>(uint64 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 32) / static_cast<double>(65535); result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535); result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 0) / static_cast<double>(65535); result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 48) / static_cast<double>(65535); result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }
@ -724,10 +724,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint64>(uint64 color) GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint64>(uint64 color)
{ {
detail::tvec4<double> result; detail::tvec4<double> result;
result.x = static_cast<double>(color >> 48) / static_cast<double>(65535); result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535); result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 16) / static_cast<double>(65535); result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 0) / static_cast<double>(65535); result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result; return result;
} }

View File

@ -43,6 +43,11 @@ GLM 0.9.3.0: 2011-XX-XX
- Added extension versioning - Added extension versioning
- Removed many unused namespaces - Removed many unused namespaces
================================================================================
GLM 0.9.2.4: 2011-08-04
--------------------------------------------------------------------------------
- Fixed extensions bugs
================================================================================ ================================================================================
GLM 0.9.2.3: 2011-06-08 GLM 0.9.2.3: 2011-06-08
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------