Browse Source

Rename headers to sort the files

Christophe Riccio 7 years ago
parent
commit
fd21f939d8
44 changed files with 373 additions and 92 deletions
  1. 1 47
      glm/detail/type_mat.hpp
  2. 5 45
      glm/mat2x2.hpp
  3. 31 0
      glm/matrix_dmat2x2.hpp
  4. 49 0
      glm/matrix_dmat2x2_precision.hpp
  5. 24 0
      glm/matrix_dmat2x3.hpp
  6. 24 0
      glm/matrix_dmat2x4.hpp
  7. 24 0
      glm/matrix_dmat3x2.hpp
  8. 31 0
      glm/matrix_dmat3x3.hpp
  9. 24 0
      glm/matrix_dmat3x4.hpp
  10. 24 0
      glm/matrix_dmat4x2.hpp
  11. 24 0
      glm/matrix_dmat4x3.hpp
  12. 31 0
      glm/matrix_dmat4x4.hpp
  13. 32 0
      glm/matrix_mat2x2.hpp
  14. 49 0
      glm/matrix_mat2x2_precision.hpp
  15. 0 0
      glm/vector_bvec2.hpp
  16. 0 0
      glm/vector_bvec2_precision.hpp
  17. 0 0
      glm/vector_bvec3.hpp
  18. 0 0
      glm/vector_bvec3_precision.hpp
  19. 0 0
      glm/vector_bvec4.hpp
  20. 0 0
      glm/vector_bvec4_precision.hpp
  21. 0 0
      glm/vector_dvec2.hpp
  22. 0 0
      glm/vector_dvec2_precision.hpp
  23. 0 0
      glm/vector_dvec3.hpp
  24. 0 0
      glm/vector_dvec3_precision.hpp
  25. 0 0
      glm/vector_dvec4.hpp
  26. 0 0
      glm/vector_dvec4_precision.hpp
  27. 0 0
      glm/vector_ivec2.hpp
  28. 0 0
      glm/vector_ivec2_precision.hpp
  29. 0 0
      glm/vector_ivec3.hpp
  30. 0 0
      glm/vector_ivec3_precision.hpp
  31. 0 0
      glm/vector_ivec4.hpp
  32. 0 0
      glm/vector_ivec4_precision.hpp
  33. 0 0
      glm/vector_uvec2.hpp
  34. 0 0
      glm/vector_uvec2_precision.hpp
  35. 0 0
      glm/vector_uvec3.hpp
  36. 0 0
      glm/vector_uvec3_precision.hpp
  37. 0 0
      glm/vector_uvec4.hpp
  38. 0 0
      glm/vector_uvec4_precision.hpp
  39. 0 0
      glm/vector_vec2.hpp
  40. 0 0
      glm/vector_vec2_precision.hpp
  41. 0 0
      glm/vector_vec3.hpp
  42. 0 0
      glm/vector_vec3_precision.hpp
  43. 0 0
      glm/vector_vec4.hpp
  44. 0 0
      glm/vector_vec4_precision.hpp

+ 1 - 47
glm/detail/type_mat.hpp

@@ -352,7 +352,7 @@ namespace detail
 	typedef mediump_mat4x3		mat4x3;
 	typedef mediump_mat4x4		mat4x4;
 #else
-	//! 2 columns of 2 components matrix of floating-point numbers.
+	/// 2 columns of 2 components matrix of floating-point numbers.
 	///
 	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
 	typedef highp_mat2x2			mat2x2;
@@ -399,11 +399,6 @@ namespace detail
 
 #endif//GLM_PRECISION
 
-	//! 2 columns of 2 components matrix of floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	typedef mat2x2					mat2;
-
 	//! 3 columns of 3 components matrix of floating-point numbers.
 	///
 	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
@@ -420,47 +415,6 @@ namespace detail
 	/// @addtogroup core_precision
 	/// @{
 
-	/// 2 columns of 2 components matrix of low qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, lowp>		lowp_dmat2;
-
-	/// 2 columns of 2 components matrix of medium qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, mediump>	mediump_dmat2;
-
-	/// 2 columns of 2 components matrix of high qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, highp>		highp_dmat2;
-
-	/// 2 columns of 2 components matrix of low qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, lowp>		lowp_dmat2x2;
-
-	/// 2 columns of 2 components matrix of medium qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, mediump>	mediump_dmat2x2;
-
-	/// 2 columns of 2 components matrix of high qualifier floating-point numbers.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, double, highp>		highp_dmat2x2;
-
-	/// @}
-
-	/// @addtogroup core_precision
-	/// @{
-
 	/// 2 columns of 3 components matrix of low qualifier floating-point numbers.
 	///
 	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>

+ 5 - 45
glm/mat2x2.hpp

@@ -1,54 +1,14 @@
 /// @ref core
 /// @file glm/mat2x2.hpp
 
-#include "detail/setup.hpp"
-
 #pragma once
-
-#include "detail/type_mat2x2.hpp"
+#include "dmat2x2.hpp"
+#include "fmat2x2.hpp"
 
 namespace glm
 {
-	/// 2 columns of 2 components matrix of low qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, lowp>		lowp_mat2;
-
-	/// 2 columns of 2 components matrix of medium qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, mediump>		mediump_mat2;
-
-	/// 2 columns of 2 components matrix of high qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, highp>		highp_mat2;
-
-	/// 2 columns of 2 components matrix of low qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, lowp>		lowp_mat2x2;
-
-	/// 2 columns of 2 components matrix of medium qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, mediump>		mediump_mat2x2;
-
-	/// 2 columns of 2 components matrix of high qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mat<2, 2, float, highp>		highp_mat2x2;
+#if GLM_HAS_TEMPLATE_ALIASES
+	template <typename T, qualifier Q = defaultp> using tmat2x2 = mat<2, 2, T, Q>;
+#endif//GLM_HAS_TEMPLATE_ALIASES
 
 }//namespace glm

+ 31 - 0
glm/matrix_dmat2x2.hpp

@@ -0,0 +1,31 @@
+/// @ref core
+/// @file glm/dmat2x2.hpp
+
+#pragma once
+#include "detail/type_mat2x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<2, 2, double, lowp>			dmat2x2;
+	typedef mat<2, 2, double, lowp>			dmat2;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<2, 2, double, mediump>		dmat2x2;
+	typedef mat<2, 2, double, mediump>		dmat2;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 2, double, highp>		dmat2x2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 2, double, highp>		dmat2;
+#endif
+
+	/// @}
+}//namespace glm

+ 49 - 0
glm/matrix_dmat2x2_precision.hpp

@@ -0,0 +1,49 @@
+/// @ref core
+/// @file glm/dmat2x2_precision.hpp
+
+#pragma once
+#include "detail/type_mat2x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core_precision
+	/// @{
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, lowp>		lowp_dmat2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, mediump>	mediump_dmat2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, highp>	highp_dmat2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, lowp>		lowp_dmat2x2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, mediump>	mediump_dmat2x2;
+
+	/// 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, double, highp>	highp_dmat2x2;
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat2x3.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat2x3.hpp
+
+#pragma once
+#include "detail/type_mat2x3.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<2, 3, double, lowp>			dmat2x3;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<2, 3, double, mediump>		dmat2x3;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 2 columns of 3 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 3, double, highp>		dmat2x3;
+#endif
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat2x4.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat2x4.hpp
+
+#pragma once
+#include "detail/type_mat2x4.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<2, 4, double, lowp>			dmat2x4;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<2, 4, double, mediump>		dmat2x4;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 2 columns of 4 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 4, double, highp>		dmat2x4;
+#endif
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat3x2.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat3x2.hpp
+
+#pragma once
+#include "detail/type_mat3x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<3, 2, double, lowp>			dmat3x2;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<3, 2, double, mediump>		dmat3x2;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 3 columns of 2 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<3, 2, double, highp>		dmat3x2;
+#endif
+
+	/// @}
+}//namespace glm

+ 31 - 0
glm/matrix_dmat3x3.hpp

@@ -0,0 +1,31 @@
+/// @ref core
+/// @file glm/dmat3x3.hpp
+
+#pragma once
+#include "detail/type_mat3x3.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<3, 3, double, lowp>			dmat3x3;
+	typedef mat<3, 3, double, lowp>			dmat3;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<3, 3, double, mediump>		dmat3x3;
+	typedef mat<3, 3, double, mediump>		dmat3;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 3 columns of 3 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<3, 3, double, highp>		dmat3x3;
+
+	/// 3 columns of 3 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<3, 3, double, highp>		dmat3;
+#endif
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat3x4.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat3x4.hpp
+
+#pragma once
+#include "detail/type_mat3x4.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<3, 4, double, lowp>			dmat3x4;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<3, 4, double, mediump>		dmat3x4;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 3 columns of 4 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<3, 4, double, highp>		dmat3x4;
+#endif
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat4x2.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat4x2.hpp
+
+#pragma once
+#include "detail/type_mat4x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<4, 2, double, lowp>			dmat4x2;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<4, 2, double, mediump>		dmat4x2;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 4 columns of 2 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<4, 2, double, highp>		dmat4x2;
+#endif
+
+	/// @}
+}//namespace glm

+ 24 - 0
glm/matrix_dmat4x3.hpp

@@ -0,0 +1,24 @@
+/// @ref core
+/// @file glm/dmat4x3.hpp
+
+#pragma once
+#include "detail/type_mat4x3.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<4, 3, double, lowp>			dmat4x3;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<4, 3, double, mediump>		dmat4x3;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 4 columns of 3 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<4, 3, double, highp>		dmat4x3;
+#endif
+
+	/// @}
+}//namespace glm

+ 31 - 0
glm/matrix_dmat4x4.hpp

@@ -0,0 +1,31 @@
+/// @ref core
+/// @file glm/dmat4x4.hpp
+
+#pragma once
+#include "detail/type_mat4x4.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+	typedef mat<4, 4, double, lowp>			dmat4x4;
+	typedef mat<4, 4, double, lowp>			dmat4;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+	typedef mat<4, 4, double, mediump>		dmat4x4;
+	typedef mat<4, 4, double, mediump>		dmat4;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+	/// 4 columns of 4 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<4, 4, double, highp>		dmat4x4;
+
+	/// 4 columns of 4 components matrix of double-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<4, 4, double, highp>		dmat4;
+#endif
+
+	/// @}
+}//namespace glm

+ 32 - 0
glm/matrix_mat2x2.hpp

@@ -0,0 +1,32 @@
+/// @ref core
+/// @file glm/mat2x2.hpp
+
+#pragma once
+#include "detail/setup.hpp"
+#include "detail/type_mat2x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core
+	/// @{
+
+#if(defined(GLM_PRECISION_LOWP_FLOAT))
+	typedef mat<2, 2, float, lowp>		mat2x2;
+	typedef mat<2, 2, float, lowp>		mat2;
+#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+	typedef mat<2, 2, float, mediump>	mat2x2;
+	typedef mat<2, 2, float, mediump>	mat2;
+#else //defined(GLM_PRECISION_HIGHP_FLOAT)
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 2, float, highp>		mat2x2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	typedef mat<2, 2, float, highp>		mat2;
+#endif
+
+	/// @}
+}//namespace glm

+ 49 - 0
glm/matrix_mat2x2_precision.hpp

@@ -0,0 +1,49 @@
+/// @ref core
+/// @file glm/fmat2x2_precision.hpp
+
+#pragma once
+#include "detail/type_mat2x2.hpp"
+
+namespace glm
+{
+	/// @addtogroup core_precision
+	/// @{
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, lowp>		lowp_mat2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, mediump>	mediump_mat2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, highp>		highp_mat2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, lowp>		lowp_mat2x2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, mediump>	mediump_mat2x2;
+
+	/// 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
+	///
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
+	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+	typedef mat<2, 2, float, highp>		highp_mat2x2;
+
+	/// @}
+}//namespace glm

+ 0 - 0
glm/bvec2.hpp → glm/vector_bvec2.hpp


+ 0 - 0
glm/bvec2_precision.hpp → glm/vector_bvec2_precision.hpp


+ 0 - 0
glm/bvec3.hpp → glm/vector_bvec3.hpp


+ 0 - 0
glm/bvec3_precision.hpp → glm/vector_bvec3_precision.hpp


+ 0 - 0
glm/bvec4.hpp → glm/vector_bvec4.hpp


+ 0 - 0
glm/bvec4_precision.hpp → glm/vector_bvec4_precision.hpp


+ 0 - 0
glm/dvec2.hpp → glm/vector_dvec2.hpp


+ 0 - 0
glm/dvec2_precision.hpp → glm/vector_dvec2_precision.hpp


+ 0 - 0
glm/dvec3.hpp → glm/vector_dvec3.hpp


+ 0 - 0
glm/dvec3_precision.hpp → glm/vector_dvec3_precision.hpp


+ 0 - 0
glm/dvec4.hpp → glm/vector_dvec4.hpp


+ 0 - 0
glm/dvec4_precision.hpp → glm/vector_dvec4_precision.hpp


+ 0 - 0
glm/ivec2.hpp → glm/vector_ivec2.hpp


+ 0 - 0
glm/ivec2_precision.hpp → glm/vector_ivec2_precision.hpp


+ 0 - 0
glm/ivec3.hpp → glm/vector_ivec3.hpp


+ 0 - 0
glm/ivec3_precision.hpp → glm/vector_ivec3_precision.hpp


+ 0 - 0
glm/ivec4.hpp → glm/vector_ivec4.hpp


+ 0 - 0
glm/ivec4_precision.hpp → glm/vector_ivec4_precision.hpp


+ 0 - 0
glm/uvec2.hpp → glm/vector_uvec2.hpp


+ 0 - 0
glm/uvec2_precision.hpp → glm/vector_uvec2_precision.hpp


+ 0 - 0
glm/uvec3.hpp → glm/vector_uvec3.hpp


+ 0 - 0
glm/uvec3_precision.hpp → glm/vector_uvec3_precision.hpp


+ 0 - 0
glm/uvec4.hpp → glm/vector_uvec4.hpp


+ 0 - 0
glm/uvec4_precision.hpp → glm/vector_uvec4_precision.hpp


+ 0 - 0
glm/fvec2.hpp → glm/vector_vec2.hpp


+ 0 - 0
glm/fvec2_precision.hpp → glm/vector_vec2_precision.hpp


+ 0 - 0
glm/fvec3.hpp → glm/vector_vec3.hpp


+ 0 - 0
glm/fvec3_precision.hpp → glm/vector_vec3_precision.hpp


+ 0 - 0
glm/fvec4.hpp → glm/vector_vec4.hpp


+ 0 - 0
glm/fvec4_precision.hpp → glm/vector_vec4_precision.hpp