diff --git a/glm-0.9.5.2-aliasfix.patch b/glm-0.9.5.2-aliasfix.patch new file mode 100644 index 0000000..5574548 --- /dev/null +++ b/glm-0.9.5.2-aliasfix.patch @@ -0,0 +1,66 @@ +diff -ru glm/glm/gtc/packing.inl glm-aliasfix/glm/gtc/packing.inl +--- glm/glm/gtc/packing.inl 2014-02-08 21:28:22.000000000 +0200 ++++ glm-aliasfix/glm/gtc/packing.inl 2014-06-11 12:29:07.345452993 +0300 +@@ -35,6 +35,26 @@ + namespace glm{ + namespace detail + { ++ GLM_FUNC_QUALIFIER float float_from_bits_of_uint(uint const u) ++ { ++ union { ++ float as_float; ++ uint as_uint; ++ } result; ++ result.as_uint = u; ++ return result.as_float; ++ } ++ ++ GLM_FUNC_QUALIFIER glm::uint uint_from_bits_of_float(float const f) ++ { ++ union { ++ float as_float; ++ uint as_uint; ++ } result; ++ result.as_float = f; ++ return result.as_uint; ++ } ++ + GLM_FUNC_QUALIFIER glm::uint16 float2half(glm::uint32 const & f) + { + // 10 bits => EE EEEFFFFF +@@ -145,7 +165,7 @@ + else if(glm::isinf(x)) + return 0x1f << 6; + +- return float2packed11(reinterpret_cast(x)); ++ return float2packed11(uint_from_bits_of_float(x)); + } + + GLM_FUNC_QUALIFIER float packed11bitToFloat(glm::uint x) +@@ -158,7 +178,7 @@ + return ~0;//Inf + + uint result = packed11ToFloat(x); +- return reinterpret_cast(result); ++ return float_from_bits_of_uint(result); + } + + GLM_FUNC_QUALIFIER glm::uint floatTo10bit(float x) +@@ -170,7 +190,7 @@ + else if(glm::isinf(x)) + return 0x1f << 5; + +- return float2packed10(reinterpret_cast(x)); ++ return float2packed10(uint_from_bits_of_float(x)); + } + + GLM_FUNC_QUALIFIER float packed10bitToFloat(glm::uint x) +@@ -183,7 +203,7 @@ + return ~0;//Inf + + uint result = packed10ToFloat(x); +- return reinterpret_cast(result); ++ return float_from_bits_of_uint(result); + } + + // GLM_FUNC_QUALIFIER glm::uint f11_f11_f10(float x, float y, float z) diff --git a/glm-0.9.5.2-smallercount.patch b/glm-0.9.5.2-smallercount.patch new file mode 100644 index 0000000..096b5a6 --- /dev/null +++ b/glm-0.9.5.2-smallercount.patch @@ -0,0 +1,12 @@ +diff -ru glm/test/core/core_func_matrix.cpp glm_count/test/core/core_func_matrix.cpp +--- glm/test/core/core_func_matrix.cpp 2014-02-08 21:28:22.000000000 +0200 ++++ glm_count/test/core/core_func_matrix.cpp 2014-06-10 19:50:43.355854306 +0300 +@@ -186,7 +186,7 @@ + return Failed; + } + +-std::size_t const Count(10000000); ++std::size_t const Count(1000000); + + template + int test_inverse_perf(std::size_t Instance, char const * Message)