mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 18:24:35 +00:00
Fixed GCC 4.5 and older build #566
This commit is contained in:
parent
57091f8553
commit
2dda5af72c
@ -451,6 +451,11 @@
|
|||||||
((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA70))))
|
((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA70))))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define GLM_HAS_ONLY_XYZW ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER < GLM_COMPILER_GCC46))
|
||||||
|
#if GLM_HAS_ONLY_XYZW
|
||||||
|
# pragma message("GLM: GCC older than 4.6 has a bug presenting the use of rgba and stpq components")
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
#if GLM_LANG & GLM_LANG_CXX11_FLAG
|
#if GLM_LANG & GLM_LANG_CXX11_FLAG
|
||||||
# define GLM_HAS_ASSIGNABLE 1
|
# define GLM_HAS_ASSIGNABLE 1
|
||||||
|
@ -27,7 +27,10 @@ namespace glm
|
|||||||
|
|
||||||
// -- Data --
|
// -- Data --
|
||||||
|
|
||||||
# if GLM_HAS_ALIGNED_TYPE
|
# if GLM_HAS_ONLY_XYZW
|
||||||
|
T x;
|
||||||
|
|
||||||
|
# elif GLM_HAS_ALIGNED_TYPE
|
||||||
# if GLM_COMPILER & GLM_COMPILER_GCC
|
# if GLM_COMPILER & GLM_COMPILER_GCC
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wpedantic"
|
# pragma GCC diagnostic ignored "-Wpedantic"
|
||||||
|
@ -26,7 +26,10 @@ namespace glm
|
|||||||
|
|
||||||
// -- Data --
|
// -- Data --
|
||||||
|
|
||||||
# if GLM_HAS_ALIGNED_TYPE
|
# if GLM_HAS_ONLY_XYZW
|
||||||
|
T x, y;
|
||||||
|
|
||||||
|
# elif GLM_HAS_ALIGNED_TYPE
|
||||||
# if GLM_COMPILER & GLM_COMPILER_GCC
|
# if GLM_COMPILER & GLM_COMPILER_GCC
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wpedantic"
|
# pragma GCC diagnostic ignored "-Wpedantic"
|
||||||
|
@ -26,7 +26,10 @@ namespace glm
|
|||||||
|
|
||||||
// -- Data --
|
// -- Data --
|
||||||
|
|
||||||
# if GLM_HAS_ALIGNED_TYPE
|
# if GLM_HAS_ONLY_XYZW
|
||||||
|
T x, y, z;
|
||||||
|
|
||||||
|
# elif GLM_HAS_ALIGNED_TYPE
|
||||||
# if GLM_COMPILER & GLM_COMPILER_GCC
|
# if GLM_COMPILER & GLM_COMPILER_GCC
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wpedantic"
|
# pragma GCC diagnostic ignored "-Wpedantic"
|
||||||
|
@ -26,7 +26,10 @@ namespace glm
|
|||||||
|
|
||||||
// -- Data --
|
// -- Data --
|
||||||
|
|
||||||
# if GLM_HAS_ALIGNED_TYPE
|
# if GLM_HAS_ONLY_XYZW
|
||||||
|
T x, y, z, w;
|
||||||
|
|
||||||
|
# elif GLM_HAS_ALIGNED_TYPE
|
||||||
# if GLM_COMPILER & GLM_COMPILER_GCC
|
# if GLM_COMPILER & GLM_COMPILER_GCC
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wpedantic"
|
# pragma GCC diagnostic ignored "-Wpedantic"
|
||||||
@ -36,7 +39,7 @@ namespace glm
|
|||||||
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
||||||
# pragma clang diagnostic ignored "-Wnested-anon-types"
|
# pragma clang diagnostic ignored "-Wnested-anon-types"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
struct { T x, y, z, w;};
|
struct { T x, y, z, w;};
|
||||||
|
@ -23,7 +23,7 @@ namespace detail
|
|||||||
{
|
{
|
||||||
GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorRGB, T GammaCorrection)
|
GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorRGB, T GammaCorrection)
|
||||||
{
|
{
|
||||||
return tvec4<T, P>(compute_rgbToSrgb<T, P, tvec3>::call(tvec3<T, P>(ColorRGB), GammaCorrection), ColorRGB.a);
|
return tvec4<T, P>(compute_rgbToSrgb<T, P, tvec3>::call(tvec3<T, P>(ColorRGB), GammaCorrection), ColorRGB.w);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ namespace detail
|
|||||||
{
|
{
|
||||||
GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorSRGB, T Gamma)
|
GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorSRGB, T Gamma)
|
||||||
{
|
{
|
||||||
return tvec4<T, P>(compute_srgbToRgb<T, P, tvec3>::call(tvec3<T, P>(ColorSRGB), Gamma), ColorSRGB.a);
|
return tvec4<T, P>(compute_srgbToRgb<T, P, tvec3>::call(tvec3<T, P>(ColorSRGB), Gamma), ColorSRGB.w);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}//namespace detail
|
}//namespace detail
|
||||||
|
@ -105,20 +105,18 @@ namespace glm
|
|||||||
{
|
{
|
||||||
tvec3<T, defaultp> rgbw = tvec3<T, defaultp>(T(0.2126), T(0.7152), T(0.0722));
|
tvec3<T, defaultp> rgbw = tvec3<T, defaultp>(T(0.2126), T(0.7152), T(0.0722));
|
||||||
|
|
||||||
T col0 = (T(1) - s) * rgbw.r;
|
tvec3<T, defaultp> const col((T(1) - s) * rgbw);
|
||||||
T col1 = (T(1) - s) * rgbw.g;
|
|
||||||
T col2 = (T(1) - s) * rgbw.b;
|
|
||||||
|
|
||||||
tmat4x4<T, defaultp> result(T(1));
|
tmat4x4<T, defaultp> result(T(1));
|
||||||
result[0][0] = col0 + s;
|
result[0][0] = col.x + s;
|
||||||
result[0][1] = col0;
|
result[0][1] = col.x;
|
||||||
result[0][2] = col0;
|
result[0][2] = col.x;
|
||||||
result[1][0] = col1;
|
result[1][0] = col.y;
|
||||||
result[1][1] = col1 + s;
|
result[1][1] = col.y + s;
|
||||||
result[1][2] = col1;
|
result[1][2] = col.y;
|
||||||
result[2][0] = col2;
|
result[2][0] = col.z;
|
||||||
result[2][1] = col2;
|
result[2][1] = col.z;
|
||||||
result[2][2] = col2 + s;
|
result[2][2] = col.z + s;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,6 +58,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
|
|||||||
- Fixed intersectRayPlane returns true in parallel case #578
|
- Fixed intersectRayPlane returns true in parallel case #578
|
||||||
- Fixed GCC 6.2 compiler warnings #580
|
- Fixed GCC 6.2 compiler warnings #580
|
||||||
- Fixed GTX_matrix_decompose decompose #582 #448
|
- Fixed GTX_matrix_decompose decompose #582 #448
|
||||||
|
- Fixed GCC 4.5 and older build #566
|
||||||
|
|
||||||
#### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12
|
#### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12
|
||||||
##### Improvements:
|
##### Improvements:
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#define GLM_FORCE_SWIZZLE
|
#define GLM_FORCE_SWIZZLE
|
||||||
#include <glm/glm.hpp>
|
#include <glm/glm.hpp>
|
||||||
|
|
||||||
|
#if !GLM_HAS_ONLY_XYZW
|
||||||
|
|
||||||
int test_ivec2_swizzle()
|
int test_ivec2_swizzle()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
@ -60,16 +62,19 @@ int test_vec4_swizzle()
|
|||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
#endif//!GLM_HAS_ONLY_XYZW
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
|
|
||||||
Error += test_ivec2_swizzle();
|
# if !GLM_HAS_ONLY_XYZW
|
||||||
Error += test_ivec3_swizzle();
|
Error += test_ivec2_swizzle();
|
||||||
Error += test_ivec4_swizzle();
|
Error += test_ivec3_swizzle();
|
||||||
|
Error += test_ivec4_swizzle();
|
||||||
|
|
||||||
Error += test_vec4_swizzle();
|
Error += test_vec4_swizzle();
|
||||||
|
# endif//!GLM_HAS_ONLY_XYZW
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,7 @@ int test_instruction_set()
|
|||||||
|
|
||||||
int test_cpp_version()
|
int test_cpp_version()
|
||||||
{
|
{
|
||||||
std::printf("__cplusplus: %lld\n", __cplusplus);
|
std::printf("__cplusplus: %d\n", static_cast<int>(__cplusplus));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -334,6 +334,7 @@ int test_vec3_swizzle3_3()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !GLM_HAS_ONLY_XYZW
|
||||||
int test_vec3_swizzle_operators()
|
int test_vec3_swizzle_operators()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
@ -440,6 +441,7 @@ int test_vec3_swizzle_partial()
|
|||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
#endif//!GLM_HAS_ONLY_XYZW
|
||||||
|
|
||||||
int test_operator_increment()
|
int test_operator_increment()
|
||||||
{
|
{
|
||||||
@ -480,10 +482,13 @@ int main()
|
|||||||
Error += test_vec3_size();
|
Error += test_vec3_size();
|
||||||
Error += test_vec3_swizzle3_2();
|
Error += test_vec3_swizzle3_2();
|
||||||
Error += test_vec3_swizzle3_3();
|
Error += test_vec3_swizzle3_3();
|
||||||
Error += test_vec3_swizzle_partial();
|
|
||||||
Error += test_vec3_swizzle_operators();
|
|
||||||
Error += test_vec3_swizzle_functions();
|
|
||||||
Error += test_operator_increment();
|
Error += test_operator_increment();
|
||||||
|
|
||||||
|
# if !GLM_HAS_ONLY_XYZW
|
||||||
|
Error += test_vec3_swizzle_partial();
|
||||||
|
Error += test_vec3_swizzle_operators();
|
||||||
|
Error += test_vec3_swizzle_functions();
|
||||||
|
# endif//!GLM_HAS_ONLY_XYZW
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user