Clean up
This commit is contained in:
@@ -10,7 +10,7 @@ namespace glm{
|
|||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
template <typename T, std::size_t size, bool aligned>
|
template <typename T, std::size_t size, bool aligned>
|
||||||
struct simd_data
|
struct storage
|
||||||
{
|
{
|
||||||
typedef struct type {
|
typedef struct type {
|
||||||
uint8 data[size];
|
uint8 data[size];
|
||||||
@@ -18,7 +18,7 @@ namespace detail
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, std::size_t size>
|
template <typename T, std::size_t size>
|
||||||
struct simd_data<T, size, true>
|
struct storage<T, size, true>
|
||||||
{
|
{
|
||||||
typedef GLM_ALIGNED_STRUCT(size) type {
|
typedef GLM_ALIGNED_STRUCT(size) type {
|
||||||
uint8 data[size];
|
uint8 data[size];
|
||||||
@@ -27,19 +27,19 @@ namespace detail
|
|||||||
|
|
||||||
# if GLM_ARCH & GLM_ARCH_SSE2_BIT
|
# if GLM_ARCH & GLM_ARCH_SSE2_BIT
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<float, 16, true>
|
struct storage<float, 16, true>
|
||||||
{
|
{
|
||||||
typedef glm_vec4 type;
|
typedef glm_vec4 type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<int, 16, true>
|
struct storage<int, 16, true>
|
||||||
{
|
{
|
||||||
typedef glm_ivec4 type;
|
typedef glm_ivec4 type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<unsigned int, 16, true>
|
struct storage<unsigned int, 16, true>
|
||||||
{
|
{
|
||||||
typedef glm_uvec4 type;
|
typedef glm_uvec4 type;
|
||||||
};
|
};
|
||||||
@@ -47,7 +47,7 @@ namespace detail
|
|||||||
|
|
||||||
# if (GLM_ARCH & GLM_ARCH_AVX_BIT)
|
# if (GLM_ARCH & GLM_ARCH_AVX_BIT)
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<double, 32, true>
|
struct storage<double, 32, true>
|
||||||
{
|
{
|
||||||
typedef glm_dvec4 type;
|
typedef glm_dvec4 type;
|
||||||
};
|
};
|
||||||
@@ -55,13 +55,13 @@ namespace detail
|
|||||||
|
|
||||||
# if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
|
# if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<int64, 32, true>
|
struct storage<int64, 32, true>
|
||||||
{
|
{
|
||||||
typedef glm_i64vec4 type;
|
typedef glm_i64vec4 type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct simd_data<uint64, 32, true>
|
struct storage<uint64, 32, true>
|
||||||
{
|
{
|
||||||
typedef glm_u64vec4 type;
|
typedef glm_u64vec4 type;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace glm
|
|||||||
struct { T r, g, b, a; };
|
struct { T r, g, b, a; };
|
||||||
struct { T s, t, p, q; };
|
struct { T s, t, p, q; };
|
||||||
|
|
||||||
typename detail::simd_data<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
|
typename detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
|
||||||
|
|
||||||
# ifdef GLM_SWIZZLE
|
# ifdef GLM_SWIZZLE
|
||||||
_GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)
|
_GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)
|
||||||
|
|||||||
@@ -52,6 +52,37 @@ struct my_u8vec4_packed
|
|||||||
};
|
};
|
||||||
GLM_STATIC_ASSERT(sizeof(my_u8vec4_packed) == sizeof(glm::uint32) + sizeof(glm::u8vec4), "glm::u8vec4 packed is not correct");
|
GLM_STATIC_ASSERT(sizeof(my_u8vec4_packed) == sizeof(glm::uint32) + sizeof(glm::u8vec4), "glm::u8vec4 packed is not correct");
|
||||||
|
|
||||||
|
int test_copy()
|
||||||
|
{
|
||||||
|
int Error = 0;
|
||||||
|
|
||||||
|
{
|
||||||
|
glm::aligned_ivec4 const a(1);
|
||||||
|
glm::ivec4 const u(a);
|
||||||
|
|
||||||
|
Error += a.x == u.x ? 0 : 1;
|
||||||
|
Error += a.y == u.y ? 0 : 1;
|
||||||
|
Error += a.z == u.z ? 0 : 1;
|
||||||
|
Error += a.w == u.w ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
my_ivec4_aligned a;
|
||||||
|
a.b = glm::ivec4(1);
|
||||||
|
|
||||||
|
my_ivec4_packed u;
|
||||||
|
u.b = glm::ivec4(1);
|
||||||
|
|
||||||
|
Error += a.b.x == u.b.x ? 0 : 1;
|
||||||
|
Error += a.b.y == u.b.y ? 0 : 1;
|
||||||
|
Error += a.b.z == u.b.z ? 0 : 1;
|
||||||
|
Error += a.b.w == u.b.w ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user