Added test for inheritance #650
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#define GLM_FORCE_ALIGNED
|
#define GLM_FORCE_ALIGNED
|
||||||
#define GLM_FORCE_SWIZZLE
|
#define GLM_FORCE_SWIZZLE
|
||||||
|
#include <glm/gtc/epsilon.hpp>
|
||||||
#include <glm/vector_relational.hpp>
|
#include <glm/vector_relational.hpp>
|
||||||
#include <glm/vec2.hpp>
|
#include <glm/vec2.hpp>
|
||||||
#include <glm/vec3.hpp>
|
#include <glm/vec3.hpp>
|
||||||
@@ -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);
|
// 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;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -128,7 +129,7 @@ int test_vec4_ctor()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_bvec4_ctor()
|
static int test_bvec4_ctor()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -148,7 +149,7 @@ int test_bvec4_ctor()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_vec4_operators()
|
static int test_vec4_operators()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -284,7 +285,7 @@ int test_vec4_operators()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_vec4_equal()
|
static int test_vec4_equal()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -305,7 +306,7 @@ int test_vec4_equal()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_vec4_size()
|
static int test_vec4_size()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -330,7 +331,7 @@ int test_vec4_size()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_vec4_swizzle_partial()
|
static int test_vec4_swizzle_partial()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -367,7 +368,7 @@ int test_vec4_swizzle_partial()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_operator_increment()
|
static int test_operator_increment()
|
||||||
{
|
{
|
||||||
int Error(0);
|
int Error(0);
|
||||||
|
|
||||||
@@ -402,7 +403,7 @@ struct AoS
|
|||||||
glm::vec2 D;
|
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);
|
int Error(0);
|
||||||
|
|
||||||
@@ -423,7 +424,7 @@ int test_vec4_perf_AoS(std::size_t Size)
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_vec4_perf_SoA(std::size_t Size)
|
static int test_vec4_perf_SoA(std::size_t Size)
|
||||||
{
|
{
|
||||||
int Error(0);
|
int Error(0);
|
||||||
|
|
||||||
@@ -475,7 +476,7 @@ namespace heap
|
|||||||
glm::vec4 v;
|
glm::vec4 v;
|
||||||
};
|
};
|
||||||
|
|
||||||
int test()
|
static int test()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -489,7 +490,7 @@ namespace heap
|
|||||||
}
|
}
|
||||||
}//namespace heap
|
}//namespace heap
|
||||||
|
|
||||||
int test_vec4_simd()
|
static int test_vec4_simd()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
@@ -504,9 +505,34 @@ int test_vec4_simd()
|
|||||||
return Error;
|
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<float>()) ? 0 : 1;
|
||||||
|
Error += glm::epsilonEqual(v.y, 75.f, glm::epsilon<float>()) ? 0 : 1;
|
||||||
|
Error += glm::epsilonEqual(v.z, 74.f, glm::epsilon<float>()) ? 0 : 1;
|
||||||
|
Error += glm::epsilonEqual(v.w, 73.f, glm::epsilon<float>()) ? 0 : 1;
|
||||||
|
|
||||||
|
return Error;
|
||||||
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int Error(0);
|
int Error = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
@@ -565,6 +591,7 @@ int main()
|
|||||||
Error += test_vec4_simd();
|
Error += test_vec4_simd();
|
||||||
Error += test_operator_increment();
|
Error += test_operator_increment();
|
||||||
Error += heap::test();
|
Error += heap::test();
|
||||||
|
Error += test_inheritance();
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user