diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp index 827ac720..c1e8cfe4 100644 --- a/test/core/core_type_vec4.cpp +++ b/test/core/core_type_vec4.cpp @@ -1,5 +1,6 @@ #define GLM_FORCE_ALIGNED #define GLM_FORCE_SWIZZLE +#include #include #include #include @@ -33,7 +34,7 @@ enum comp // return _mm_shuffle_ps(Src, Src, mask<(int(W) << 6) | (int(Z) << 4) | (int(Y) << 2) | (int(X) << 0)>::value); //} -int test_vec4_ctor() +static int test_vec4_ctor() { int Error = 0; @@ -128,7 +129,7 @@ int test_vec4_ctor() return Error; } -int test_bvec4_ctor() +static int test_bvec4_ctor() { int Error = 0; @@ -148,7 +149,7 @@ int test_bvec4_ctor() return Error; } -int test_vec4_operators() +static int test_vec4_operators() { int Error = 0; @@ -284,7 +285,7 @@ int test_vec4_operators() return Error; } -int test_vec4_equal() +static int test_vec4_equal() { int Error = 0; @@ -305,7 +306,7 @@ int test_vec4_equal() return Error; } -int test_vec4_size() +static int test_vec4_size() { int Error = 0; @@ -330,7 +331,7 @@ int test_vec4_size() return Error; } -int test_vec4_swizzle_partial() +static int test_vec4_swizzle_partial() { int Error = 0; @@ -367,7 +368,7 @@ int test_vec4_swizzle_partial() return Error; } -int test_operator_increment() +static int test_operator_increment() { int Error(0); @@ -402,7 +403,7 @@ struct AoS glm::vec2 D; }; -int test_vec4_perf_AoS(std::size_t Size) +static int test_vec4_perf_AoS(std::size_t Size) { int Error(0); @@ -423,7 +424,7 @@ int test_vec4_perf_AoS(std::size_t Size) return Error; } -int test_vec4_perf_SoA(std::size_t Size) +static int test_vec4_perf_SoA(std::size_t Size) { int Error(0); @@ -475,7 +476,7 @@ namespace heap glm::vec4 v; }; - int test() + static int test() { int Error = 0; @@ -489,7 +490,7 @@ namespace heap } }//namespace heap -int test_vec4_simd() +static int test_vec4_simd() { int Error = 0; @@ -504,9 +505,34 @@ int test_vec4_simd() return Error; } +static int test_inheritance() +{ + struct my_vec4 : public glm::vec4 + { + my_vec4() + : glm::vec4(76.f, 75.f, 74.f, 73.f) + , data(82) + {} + + int data; + }; + + int Error = 0; + + my_vec4 v; + + Error += v.data == 82 ? 0 : 1; + Error += glm::epsilonEqual(v.x, 76.f, glm::epsilon()) ? 0 : 1; + Error += glm::epsilonEqual(v.y, 75.f, glm::epsilon()) ? 0 : 1; + Error += glm::epsilonEqual(v.z, 74.f, glm::epsilon()) ? 0 : 1; + Error += glm::epsilonEqual(v.w, 73.f, glm::epsilon()) ? 0 : 1; + + return Error; +} + int main() { - int Error(0); + int Error = 0; /* { @@ -565,6 +591,7 @@ int main() Error += test_vec4_simd(); Error += test_operator_increment(); Error += heap::test(); + Error += test_inheritance(); return Error; }