|
|
@@ -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 <immintrin.h>
|
|
|
#endif//GLM_ARCH
|
|
|
-#if((GLM_ARCH & GLM_ARCH_AVX) == GLM_ARCH_AVX)
|
|
|
+#if(GLM_ARCH & GLM_ARCH_AVX)
|
|
|
# include <immintrin.h>
|
|
|
#endif//GLM_ARCH
|
|
|
-#if((GLM_ARCH & GLM_ARCH_SSE4) == GLM_ARCH_SSE4)
|
|
|
+#if(GLM_ARCH & GLM_ARCH_SSE4)
|
|
|
# include <smmintrin.h>
|
|
|
#endif//GLM_ARCH
|
|
|
-#if((GLM_ARCH & GLM_ARCH_SSE3) == GLM_ARCH_SSE3)
|
|
|
+#if(GLM_ARCH & GLM_ARCH_SSE3)
|
|
|
# include <pmmintrin.h>
|
|
|
#endif//GLM_ARCH
|
|
|
-#if((GLM_ARCH & GLM_ARCH_SSE2) == GLM_ARCH_SSE2)
|
|
|
+#if(GLM_ARCH & GLM_ARCH_SSE2)
|
|
|
# include <emmintrin.h>
|
|
|
#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
|
|
|
@@ -563,8 +568,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())
|