mirror of
https://github.com/g-truc/glm.git
synced 2024-11-27 02:34:35 +00:00
Bring back CXXMS and CXX98 code pass for swizzle operators
This commit is contained in:
parent
bc72fafdd9
commit
b3d70c635b
@ -51,13 +51,34 @@ namespace detail
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Data
|
// Data
|
||||||
|
|
||||||
union {value_type x, r, s;};
|
# if(GLM_LANG & GLM_LANG_CXXMS_FLAG)
|
||||||
union {value_type y, g, t;};
|
union
|
||||||
|
{
|
||||||
|
struct{ value_type x, y; };
|
||||||
|
struct{ value_type r, g; };
|
||||||
|
struct{ value_type s, t; };
|
||||||
|
|
||||||
# ifdef GLM_SWIZZLE
|
# if(defined(GLM_SWIZZLE))
|
||||||
GLM_SWIZZLE_GEN_REF_FROM_VEC2(value_type, P, detail::tvec2, detail::tref2)
|
_GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)
|
||||||
GLM_SWIZZLE_GEN_VEC_FROM_VEC2(value_type, P, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4)
|
_GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)
|
||||||
# endif//GLM_SWIZZLE
|
_GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)
|
||||||
|
_GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)
|
||||||
|
_GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)
|
||||||
|
_GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)
|
||||||
|
_GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)
|
||||||
|
_GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)
|
||||||
|
_GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
};
|
||||||
|
# else
|
||||||
|
union {value_type x, r, s;};
|
||||||
|
union {value_type y, g, t;};
|
||||||
|
|
||||||
|
# if(defined(GLM_SWIZZLE))
|
||||||
|
GLM_SWIZZLE_GEN_REF_FROM_VEC2(value_type, P, detail::tvec2, detail::tref2)
|
||||||
|
GLM_SWIZZLE_GEN_VEC_FROM_VEC2(value_type, P, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
# endif//GLM_LANG
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Accesses
|
// Accesses
|
||||||
|
@ -51,14 +51,35 @@ namespace detail
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Data
|
// Data
|
||||||
|
|
||||||
union {value_type x, r, s;};
|
# if(GLM_LANG & GLM_LANG_CXXMS_FLAG)
|
||||||
union {value_type y, g, t;};
|
union
|
||||||
union {value_type z, b, p;};
|
{
|
||||||
|
struct{ value_type x, y, z; };
|
||||||
|
struct{ value_type r, g, b; };
|
||||||
|
struct{ value_type s, t, p; };
|
||||||
|
|
||||||
# if(defined(GLM_SWIZZLE))
|
# if(defined(GLM_SWIZZLE))
|
||||||
GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P, detail::tvec3, detail::tref2, detail::tref3)
|
_GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
|
||||||
GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4)
|
_GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
|
||||||
# endif//(defined(GLM_SWIZZLE))
|
_GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
|
||||||
|
_GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
|
||||||
|
_GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
|
||||||
|
_GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
|
||||||
|
_GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
|
||||||
|
_GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
|
||||||
|
_GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
};
|
||||||
|
# else
|
||||||
|
union { value_type x, r, s; };
|
||||||
|
union { value_type y, g, t; };
|
||||||
|
union { value_type z, b, p; };
|
||||||
|
|
||||||
|
# if(defined(GLM_SWIZZLE))
|
||||||
|
GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P, detail::tvec3, detail::tref2, detail::tref3)
|
||||||
|
GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
# endif//GLM_LANG
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Accesses
|
// Accesses
|
||||||
|
@ -51,15 +51,36 @@ namespace detail
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Data
|
// Data
|
||||||
|
|
||||||
union {value_type x, r, s;};
|
# if(GLM_LANG & GLM_LANG_CXXMS_FLAG)
|
||||||
union {value_type y, g, t;};
|
union
|
||||||
union {value_type z, b, p;};
|
{
|
||||||
union {value_type w, a, q;};
|
struct { value_type r, g, b, a; };
|
||||||
|
struct { value_type s, t, p, q; };
|
||||||
|
struct { value_type x, y, z, w;};
|
||||||
|
|
||||||
# if(defined(GLM_SWIZZLE))
|
# if(defined(GLM_SWIZZLE))
|
||||||
GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P, detail::tvec4, detail::tref2, detail::tref3, detail::tref4)
|
_GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)
|
||||||
GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4)
|
_GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)
|
||||||
# endif//(defined(GLM_SWIZZLE))
|
_GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)
|
||||||
|
_GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)
|
||||||
|
_GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)
|
||||||
|
_GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)
|
||||||
|
_GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)
|
||||||
|
_GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)
|
||||||
|
_GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
};
|
||||||
|
# else
|
||||||
|
union { value_type x, r, s; };
|
||||||
|
union { value_type y, g, t; };
|
||||||
|
union { value_type z, b, p; };
|
||||||
|
union { value_type w, a, q; };
|
||||||
|
|
||||||
|
# if(defined(GLM_SWIZZLE))
|
||||||
|
GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P, detail::tvec4, detail::tref2, detail::tref3, detail::tref4)
|
||||||
|
GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4)
|
||||||
|
# endif//(defined(GLM_SWIZZLE))
|
||||||
|
# endif//GLM_LANG
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// Accesses
|
// Accesses
|
||||||
|
Loading…
Reference in New Issue
Block a user