From e26b0587b25f0910ff1a40197cfe2eee30cf0d4d Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 28 Jun 2012 17:01:02 +0100 Subject: [PATCH 1/5] Deleted VIRTREV_xstream --- CMakeLists.txt | 9 ++++----- glm/core/setup.hpp | 7 ++++++- glm/core/type_vec3.hpp | 3 ++- glm/gtc/half_float.hpp | 4 ++-- glm/gtc/half_float.inl | 4 ++-- glm/virtrev/xstream.hpp | 4 ++-- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 549b183f..bb598a91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,11 +14,9 @@ endif() option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF) if(GLM_TEST_ENABLE_CXX_11) if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-std=c++11) + add_definitions(-std=c++0x) endif() elseif(NOT GLM_TEST_ENABLE_CXX_11) - add_definitions(-DGLM_FORCE_CXX98) - if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=c++98) endif() @@ -27,8 +25,9 @@ endif() option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF) if(GLM_TEST_ENABLE_MS_EXTENSIONS) if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-fms-extensions) - add_definitions(-D_MSC_EXTENSIONS) + #Doesn't seem to work... + #add_definitions(-fms-extensions) + #add_definitions(-D_MSC_EXTENSIONS) endif() elseif(NOT GLM_TEST_ENABLE_MS_EXTENSIONS) if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/glm/core/setup.hpp b/glm/core/setup.hpp index c4d439a4..b6bc7de3 100644 --- a/glm/core/setup.hpp +++ b/glm/core/setup.hpp @@ -430,6 +430,8 @@ # define GLM_LANG GLM_LANG_CXX0X # elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && defined(_MSC_EXTENSIONS)) # define GLM_LANG GLM_LANG_CXXMS +# elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(_MSC_EXTENSIONS)) +# define GLM_LANG GLM_LANG_CXXMS # elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS)) # if(GLM_COMPILER >= GLM_COMPILER_VC2010) # define GLM_LANG GLM_LANG_CXX0X @@ -563,8 +565,11 @@ #define GLM_SUPPORT_ANONYMOUS_UNION() \ ((GLM_LANG & GLM_LANG_CXX98) == GLM_LANG_CXX98) +//#define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() \ +// (((GLM_LANG & GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_LANG & GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X))) + #define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() \ - (((GLM_LANG & GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_LANG & GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X))) + (((GLM_LANG & GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER & GLM_COMPILER_VC) && ((GLM_LANG & GLM_LANG_CXXMS) == GLM_LANG_CXXMS)) || ((GLM_LANG == GLM_LANG_CXX0X) == GLM_LANG_CXX0X)) #define GLM_SUPPORT_SWIZZLE_OPERATOR() \ (/*defined(GLM_SWIZZLE) && */GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE()) diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index 3177b342..6468922d 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -84,12 +84,13 @@ namespace detail union {value_type x, r, s;}; union {value_type y, g, t;}; union {value_type z, b, p;}; - +/* # if(defined(GLM_SWIZZLE)) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, detail::tvec3, detail::tref2, detail::tref3) GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4) # endif//(defined(GLM_SWIZZLE)) +*/ # else //(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW) value_type x, y, z; diff --git a/glm/gtc/half_float.hpp b/glm/gtc/half_float.hpp index 30aabab6..5eb438d6 100644 --- a/glm/gtc/half_float.hpp +++ b/glm/gtc/half_float.hpp @@ -47,7 +47,7 @@ namespace glm{ namespace detail { -#if(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE()) +#if(GLM_COMPONENT == GLM_COMPONENT_CXX98) template <> struct tvec2 { @@ -345,7 +345,7 @@ namespace detail tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; tref4 swizzle(comp X, comp Y, comp Z, comp W); }; -#endif//(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE()) +#endif//(GLM_COMPONENT == GLM_COMPONENT_CXX98) } //namespace detail diff --git a/glm/gtc/half_float.inl b/glm/gtc/half_float.inl index 8b504518..8a4a2c38 100644 --- a/glm/gtc/half_float.inl +++ b/glm/gtc/half_float.inl @@ -29,7 +29,7 @@ namespace glm{ namespace detail { -#if(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE()) +#if(GLM_COMPONENT == GLM_COMPONENT_CXX98) ////////////////////////////////////// // hvec2 @@ -1003,7 +1003,7 @@ namespace detail (*this)[w]); } -#endif//(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE()) +#endif//(GLM_COMPONENT == GLM_COMPONENT_CXX98) }//namespace detail }//namespace glm diff --git a/glm/virtrev/xstream.hpp b/glm/virtrev/xstream.hpp index 7ef6bb97..79486cf4 100644 --- a/glm/virtrev/xstream.hpp +++ b/glm/virtrev/xstream.hpp @@ -46,7 +46,7 @@ #if(defined(GLM_MESSAGES) && !defined(glm_ext)) # pragma message("GLM: GLM_VIRTREV_xstream extension included") #endif - +/* namespace glm{ namespace detail { @@ -162,5 +162,5 @@ namespace detail }//namespace detail }//namespace glm - +*/ #endif//GLM_VIRTREV_xstream From a979cb483eb0624ec86e88f230ee85a70a3dfb54 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 28 Jun 2012 19:15:57 +0100 Subject: [PATCH 2/5] Updated readme for GLM 0.9.3.4 release --- glm/core/setup.hpp | 2 -- glm/core/type_vec3.hpp | 3 +-- readme.txt | 5 ++++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/glm/core/setup.hpp b/glm/core/setup.hpp index b6bc7de3..a12adb46 100644 --- a/glm/core/setup.hpp +++ b/glm/core/setup.hpp @@ -430,8 +430,6 @@ # define GLM_LANG GLM_LANG_CXX0X # elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && defined(_MSC_EXTENSIONS)) # define GLM_LANG GLM_LANG_CXXMS -# elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(_MSC_EXTENSIONS)) -# define GLM_LANG GLM_LANG_CXXMS # elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS)) # if(GLM_COMPILER >= GLM_COMPILER_VC2010) # define GLM_LANG GLM_LANG_CXX0X diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index 6468922d..3177b342 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -84,13 +84,12 @@ namespace detail union {value_type x, r, s;}; union {value_type y, g, t;}; union {value_type z, b, p;}; -/* + # if(defined(GLM_SWIZZLE)) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, detail::tvec3, detail::tref2, detail::tref3) GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4) # endif//(defined(GLM_SWIZZLE)) -*/ # else //(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW) value_type x, y, z; diff --git a/readme.txt b/readme.txt index fd5eacd5..1f1a943c 100644 --- a/readme.txt +++ b/readme.txt @@ -37,9 +37,12 @@ More informations in GLM manual: http://glm.g-truc.net/glm-0.9.3.pdf ================================================================================ -GLM 0.9.3.4: 2012-XX-XX +GLM 0.9.3.4: 2012-06-28 -------------------------------------------------------------------------------- - Added SSE4 and AVX2 detection. +- Removed VIRTREV_xstream and the incompatibility generated with GCC +- Fixed C++11 compiler option for GCC +- Removed MS language extension option for GCC (not fonctionnal) ================================================================================ GLM 0.9.3.3: 2012-05-10 From 3ab80ffe6dbd07cc109ba2c657c6f425c8075dbf Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 28 Jun 2012 19:40:42 +0100 Subject: [PATCH 3/5] Fixed #187, fixed bitfieldExtract for vector based type --- glm/core/func_integer.inl | 18 +++++++++--------- readme.txt | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/glm/core/func_integer.inl b/glm/core/func_integer.inl index 013197ce..5de9fcbf 100644 --- a/glm/core/func_integer.inl +++ b/glm/core/func_integer.inl @@ -301,8 +301,8 @@ namespace glm ) { return detail::tvec2( - bitfieldExtract(Value[0]), - bitfieldExtract(Value[1])); + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits)); } template @@ -314,9 +314,9 @@ namespace glm ) { return detail::tvec3( - bitfieldExtract(Value[0]), - bitfieldExtract(Value[1]), - bitfieldExtract(Value[2])); + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits), + bitfieldExtract(Value[2], Offset, Bits)); } template @@ -328,10 +328,10 @@ namespace glm ) { return detail::tvec4( - bitfieldExtract(Value[0]), - bitfieldExtract(Value[1]), - bitfieldExtract(Value[2]), - bitfieldExtract(Value[3])); + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits), + bitfieldExtract(Value[2], Offset, Bits), + bitfieldExtract(Value[3], Offset, Bits)); } // bitfieldInsert diff --git a/readme.txt b/readme.txt index 1f1a943c..4e016f26 100644 --- a/readme.txt +++ b/readme.txt @@ -43,6 +43,7 @@ GLM 0.9.3.4: 2012-06-28 - Removed VIRTREV_xstream and the incompatibility generated with GCC - Fixed C++11 compiler option for GCC - Removed MS language extension option for GCC (not fonctionnal) +- Fixed bitfieldExtract for vector types ================================================================================ GLM 0.9.3.3: 2012-05-10 From 9bd19663c125692e2837c28dde55c38150b87cc0 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 28 Jun 2012 19:45:28 +0100 Subject: [PATCH 4/5] Fixed #186, fixed warning --- glm/core/_swizzle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glm/core/_swizzle.hpp b/glm/core/_swizzle.hpp index 429a92ff..61be1d6b 100644 --- a/glm/core/_swizzle.hpp +++ b/glm/core/_swizzle.hpp @@ -191,7 +191,7 @@ namespace detail typedef ValueType value_type; struct Stub {}; - _swizzle_base2& operator= (const Stub& that) {} + _swizzle_base2& operator= (Stub const &) {} value_type operator[] (size_t i) const { From ac8ec9b97c9d7af454d403a6cbe93c7b5bdb0945 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 30 Jun 2012 01:05:45 +0100 Subject: [PATCH 5/5] Fixed SSE includes with GCC --- glm/core/setup.hpp | 27 ++++++++++++++++----------- readme.txt | 2 ++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/glm/core/setup.hpp b/glm/core/setup.hpp index a12adb46..c573b702 100644 --- a/glm/core/setup.hpp +++ b/glm/core/setup.hpp @@ -49,9 +49,12 @@ #define GLM_PLATFORM_ANDROID 0x00100000 #define GLM_PLATFORM_CHROME_NACL 0x00200000 #define GLM_PLATFORM_UNIX 0x00400000 +#define GLM_PLATFORM_QNXNTO 0x00800000 #ifdef GLM_FORCE_PLATFORM_UNKNOWN # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN +#elif defined(__QNXNTO__) +# define GLM_PLATFORM GLM_PLATFORM_QNXNTO #elif defined(__APPLE__) # define GLM_PLATFORM GLM_PLATFORM_APPLE #elif defined(_WIN32) @@ -471,10 +474,10 @@ #define GLM_ARCH_PURE 0x0000 #define GLM_ARCH_SSE2 0x0001 -#define GLM_ARCH_SSE3 0x0002 | GLM_ARCH_SSE2 -#define GLM_ARCH_SSE4 0x0004 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 -#define GLM_ARCH_AVX 0x0008 | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 -#define GLM_ARCH_AVX2 0x0010 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 +#define GLM_ARCH_SSE3 0x0002// | GLM_ARCH_SSE2 +#define GLM_ARCH_SSE4 0x0004// | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 +#define GLM_ARCH_AVX 0x0008// | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 +#define GLM_ARCH_AVX2 0x0010// | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2 #if(defined(GLM_FORCE_PURE)) # define GLM_ARCH GLM_ARCH_PURE @@ -504,6 +507,8 @@ # else # define GLM_ARCH GLM_ARCH_PURE # endif +#elif((GLM_PLATFORM & GLM_PLATFORM_APPLE) && (GLM_COMPILER & GLM_COMPILER_GCC)) +# define GLM_ARCH GLM_ARCH_PURE #elif(((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))) || (GLM_COMPILER & GLM_COMPILER_LLVM_GCC)) # if(defined(__AVX2__)) # define GLM_ARCH GLM_ARCH_AVX2 @@ -522,23 +527,23 @@ # define GLM_ARCH GLM_ARCH_PURE #endif -#if(GLM_ARCH != GLM_ARCH_PURE) -#if((GLM_ARCH & GLM_ARCH_AVX2) == GLM_ARCH_AVX2) +//#if(GLM_ARCH != GLM_ARCH_PURE) +#if(GLM_ARCH & GLM_ARCH_AVX2) # include #endif//GLM_ARCH -#if((GLM_ARCH & GLM_ARCH_AVX) == GLM_ARCH_AVX) +#if(GLM_ARCH & GLM_ARCH_AVX) # include #endif//GLM_ARCH -#if((GLM_ARCH & GLM_ARCH_SSE4) == GLM_ARCH_SSE4) +#if(GLM_ARCH & GLM_ARCH_SSE4) # include #endif//GLM_ARCH -#if((GLM_ARCH & GLM_ARCH_SSE3) == GLM_ARCH_SSE3) +#if(GLM_ARCH & GLM_ARCH_SSE3) # include #endif//GLM_ARCH -#if((GLM_ARCH & GLM_ARCH_SSE2) == GLM_ARCH_SSE2) +#if(GLM_ARCH & GLM_ARCH_SSE2) # include #endif//GLM_ARCH -#endif//(GLM_ARCH != GLM_ARCH_PURE) +//#endif//(GLM_ARCH != GLM_ARCH_PURE) #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED)) # define GLM_MESSAGE_ARCH_DISPLAYED diff --git a/readme.txt b/readme.txt index 4e016f26..f186d8aa 100644 --- a/readme.txt +++ b/readme.txt @@ -44,6 +44,8 @@ GLM 0.9.3.4: 2012-06-28 - Fixed C++11 compiler option for GCC - Removed MS language extension option for GCC (not fonctionnal) - Fixed bitfieldExtract for vector types +- Fixed warnings +- Fixed SSE includes ================================================================================ GLM 0.9.3.3: 2012-05-10