|
@@ -300,13 +300,13 @@
|
|
|
|
|
|
|
|
// User defines: GLM_FORCE_CXX98
|
|
// User defines: GLM_FORCE_CXX98
|
|
|
|
|
|
|
|
-#define GLM_LANG_CXX 0
|
|
|
|
|
-#define GLM_LANG_CXX98 1
|
|
|
|
|
-#define GLM_LANG_CXX03 2
|
|
|
|
|
-#define GLM_LANG_CXX0X 3
|
|
|
|
|
-#define GLM_LANG_CXX11 4
|
|
|
|
|
-#define GLM_LANG_CXXMS 5
|
|
|
|
|
-#define GLM_LANG_CXXGNU 6
|
|
|
|
|
|
|
+#define GLM_LANG_CXX (0 << 0)
|
|
|
|
|
+#define GLM_LANG_CXX98 ((1 << 1) | GLM_LANG_CXX)
|
|
|
|
|
+#define GLM_LANG_CXX03 ((1 << 2) | GLM_LANG_CXX98)
|
|
|
|
|
+#define GLM_LANG_CXX0X ((1 << 3) | GLM_LANG_CXX03)
|
|
|
|
|
+#define GLM_LANG_CXX11 ((1 << 4) | GLM_LANG_CXX11)
|
|
|
|
|
+#define GLM_LANG_CXXMS (1 << 5)
|
|
|
|
|
+#define GLM_LANG_CXXGNU (1 << 6)
|
|
|
|
|
|
|
|
#if(defined(GLM_FORCE_CXX11))
|
|
#if(defined(GLM_FORCE_CXX11))
|
|
|
# define GLM_LANG GLM_LANG_CXX11
|
|
# define GLM_LANG GLM_LANG_CXX11
|
|
@@ -314,20 +314,22 @@
|
|
|
# define GLM_LANG GLM_LANG_CXX03
|
|
# define GLM_LANG GLM_LANG_CXX03
|
|
|
#elif(defined(GLM_FORCE_CXX98))
|
|
#elif(defined(GLM_FORCE_CXX98))
|
|
|
# define GLM_LANG GLM_LANG_CXX98
|
|
# define GLM_LANG GLM_LANG_CXX98
|
|
|
-#elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__STRICT_ANSI__))
|
|
|
|
|
-# define GLM_LANG GLM_LANG_CXX98
|
|
|
|
|
-#elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__GXX_EXPERIMENTAL_CXX0X__)) // -std=c++0x or -std=gnu++0x
|
|
|
|
|
-# 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_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS))
|
|
|
|
|
-# if(GLM_COMPILER >= GLM_COMPILER_VC2010)
|
|
|
|
|
|
|
+#else
|
|
|
|
|
+# if(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__STRICT_ANSI__))
|
|
|
|
|
+# define GLM_LANG GLM_LANG_CXX98
|
|
|
|
|
+# elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__GXX_EXPERIMENTAL_CXX0X__)) // -std=c++0x or -std=gnu++0x
|
|
|
# define GLM_LANG GLM_LANG_CXX0X
|
|
# 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_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS))
|
|
|
|
|
+# if(GLM_COMPILER >= GLM_COMPILER_VC2010)
|
|
|
|
|
+# define GLM_LANG GLM_LANG_CXX0X
|
|
|
|
|
+# else
|
|
|
|
|
+# define GLM_LANG GLM_LANG_CXX98
|
|
|
|
|
+# endif//(GLM_COMPILER == GLM_COMPILER_VC2010)
|
|
|
# else
|
|
# else
|
|
|
-# define GLM_LANG GLM_LANG_CXX98
|
|
|
|
|
-# endif//(GLM_COMPILER == GLM_COMPILER_VC2010)
|
|
|
|
|
-#else
|
|
|
|
|
-# define GLM_LANG GLM_LANG_CXX
|
|
|
|
|
|
|
+# define GLM_LANG GLM_LANG_CXX
|
|
|
|
|
+# endif
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
|
|
#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
|
|
@@ -430,38 +432,46 @@
|
|
|
# endif//GLM_ARCH
|
|
# endif//GLM_ARCH
|
|
|
#endif//GLM_MESSAGE
|
|
#endif//GLM_MESSAGE
|
|
|
|
|
|
|
|
|
|
+///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
+// Support check macros
|
|
|
|
|
+
|
|
|
|
|
+#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_LANG & GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X)))
|
|
|
|
|
+
|
|
|
|
|
+#define GLM_SUPPORT_SWIZZLE_OPERATOR() \
|
|
|
|
|
+ (defined(GLM_SWIZZLE) && GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())
|
|
|
|
|
+
|
|
|
|
|
+#define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE)
|
|
|
|
|
+
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
// Components
|
|
// Components
|
|
|
|
|
|
|
|
//#define GLM_FORCE_ONLY_XYZW
|
|
//#define GLM_FORCE_ONLY_XYZW
|
|
|
-#define GLM_COMPONENT_GLSL_NAMES 0
|
|
|
|
|
-#define GLM_COMPONENT_ONLY_XYZW 1 // To disable multiple vector component names access.
|
|
|
|
|
-#define GLM_COMPONENT_MS_EXT 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
|
|
|
|
|
-
|
|
|
|
|
-#ifndef GLM_FORCE_ONLY_XYZW
|
|
|
|
|
-# if((GLM_COMPILER & GLM_COMPILER_VC) && defined(_MSC_EXTENSIONS))
|
|
|
|
|
-# define GLM_COMPONENT GLM_COMPONENT_MS_EXT
|
|
|
|
|
-# else
|
|
|
|
|
-# define GLM_COMPONENT GLM_COMPONENT_GLSL_NAMES
|
|
|
|
|
-# endif
|
|
|
|
|
|
|
+#define GLM_COMPONENT_ONLY_XYZW 0 // To disable multiple vector component names access.
|
|
|
|
|
+#define GLM_COMPONENT_CXX98 1 //
|
|
|
|
|
+#define GLM_COMPONENT_CXX11 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
|
|
|
|
|
+
|
|
|
|
|
+#if(GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() && !defined(GLM_FORCE_ONLY_XYZW))
|
|
|
|
|
+# define GLM_COMPONENT GLM_COMPONENT_CXX11
|
|
|
|
|
+#elif(GLM_SUPPORT_ANONYMOUS_UNION() && !defined(GLM_FORCE_ONLY_XYZW))
|
|
|
|
|
+# define GLM_COMPONENT GLM_COMPONENT_CXX98
|
|
|
#else
|
|
#else
|
|
|
# define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW
|
|
# define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-#if((GLM_COMPONENT == GLM_COMPONENT_MS_EXT) && !(GLM_COMPILER & GLM_COMPILER_VC))
|
|
|
|
|
-# error "GLM_COMPONENT value is GLM_COMPONENT_MS_EXT but this is not allowed with the current compiler."
|
|
|
|
|
-#endif
|
|
|
|
|
-
|
|
|
|
|
#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))
|
|
#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))
|
|
|
# define GLM_MESSAGE_COMPONENT_DISPLAYED
|
|
# define GLM_MESSAGE_COMPONENT_DISPLAYED
|
|
|
-# if(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
|
|
|
|
|
-# pragma message("GLM: GLSL multiple vector component names")
|
|
|
|
|
|
|
+# if(GLM_COMPONENT == GLM_COMPONENT_CXX98)
|
|
|
|
|
+# pragma message("GLM: x,y,z,w; r,g,b,a; s,t,p,q component names except of half based vector types")
|
|
|
# elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
|
|
# elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
|
|
|
-# pragma message("GLM: x,y,z,w vector component names only")
|
|
|
|
|
-# elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
|
|
|
|
|
-# pragma message("GLM: Multiple vector component names through Visual C++ language extensions")
|
|
|
|
|
|
|
+# pragma message("GLM: x,y,z,w component names for all vector types")
|
|
|
|
|
+# elif(GLM_COMPONENT == GLM_COMPONENT_CXX11)
|
|
|
|
|
+# pragma message("GLM: x,y,z,w; r,g,b,a; s,t,p,q component names for all vector types")
|
|
|
# else
|
|
# else
|
|
|
-# error "GLM_COMPONENT value unknown"
|
|
|
|
|
|
|
+# error "GLM: GLM_COMPONENT value unknown"
|
|
|
# endif//GLM_MESSAGE_COMPONENT_DISPLAYED
|
|
# endif//GLM_MESSAGE_COMPONENT_DISPLAYED
|
|
|
#endif//GLM_MESSAGE
|
|
#endif//GLM_MESSAGE
|
|
|
|
|
|
|
@@ -513,13 +523,6 @@
|
|
|
#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
|
|
#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
|
|
|
#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
|
|
#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
|
|
|
|
|
|
|
|
-///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
-// Support check macros
|
|
|
|
|
-
|
|
|
|
|
-#define GLM_SUPPORT_SWIZZLE_OPERATOR() (defined(GLM_SWIZZLE) && \
|
|
|
|
|
- ((GLM_LANG == GLM_LANG_CXX11) || (GLM_LANG == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X))))
|
|
|
|
|
-#define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE)
|
|
|
|
|
-
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
// Swizzle operators
|
|
// Swizzle operators
|
|
|
|
|
|