diff options
Diffstat (limited to '')
-rw-r--r-- | external/include/glm/detail/type_mat.hpp | 695 |
1 files changed, 347 insertions, 348 deletions
diff --git a/external/include/glm/detail/type_mat.hpp b/external/include/glm/detail/type_mat.hpp index aad74e5..db839b3 100644 --- a/external/include/glm/detail/type_mat.hpp +++ b/external/include/glm/detail/type_mat.hpp @@ -3,335 +3,334 @@ #pragma once -#include "precision.hpp" +#include "qualifier.hpp" namespace glm{ namespace detail { - template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType> + template<length_t C, length_t R, typename T, qualifier Q> struct outerProduct_trait{}; }//namespace detail - template <typename T, precision P> struct tvec2; - template <typename T, precision P> struct tvec3; - template <typename T, precision P> struct tvec4; - template <typename T, precision P> struct tmat2x2; - template <typename T, precision P> struct tmat2x3; - template <typename T, precision P> struct tmat2x4; - template <typename T, precision P> struct tmat3x2; - template <typename T, precision P> struct tmat3x3; - template <typename T, precision P> struct tmat3x4; - template <typename T, precision P> struct tmat4x2; - template <typename T, precision P> struct tmat4x3; - template <typename T, precision P> struct tmat4x4; - - template <typename T, precision P, template <typename, precision> class matType> - GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m); +#if GLM_HAS_TEMPLATE_ALIASES + template <typename T, qualifier Q = defaultp> using tmat2x2 = mat<2, 2, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat2x3 = mat<2, 3, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat2x4 = mat<2, 4, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat3x2 = mat<3, 2, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat3x3 = mat<3, 3, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat3x4 = mat<3, 4, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat4x2 = mat<4, 2, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat4x3 = mat<4, 3, T, Q>; + template <typename T, qualifier Q = defaultp> using tmat4x4 = mat<4, 4, T, Q>; +#endif//GLM_HAS_TEMPLATE_ALIASES + + template<length_t C, length_t R, typename T, qualifier Q> + GLM_FUNC_DECL mat<C, R, T, Q> inverse(mat<C, R, T, Q> const& m); /// @addtogroup core_precision /// @{ - - /// 2 columns of 2 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 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 tmat2x2<float, lowp> lowp_mat2; - - /// 2 columns of 2 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + 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 tmat2x2<float, mediump> mediump_mat2; - - /// 2 columns of 2 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + 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 tmat2x2<float, highp> highp_mat2; - - /// 2 columns of 2 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + 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 tmat2x2<float, lowp> lowp_mat2x2; - - /// 2 columns of 2 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + 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 tmat2x2<float, mediump> mediump_mat2x2; - - /// 2 columns of 2 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + 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 tmat2x2<float, highp> highp_mat2x2; - + typedef mat<2, 2, float, highp> highp_mat2x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 2 columns of 3 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 2 columns of 3 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 tmat2x3<float, lowp> lowp_mat2x3; - - /// 2 columns of 3 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<2, 3, float, lowp> lowp_mat2x3; + + /// 2 columns of 3 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 tmat2x3<float, mediump> mediump_mat2x3; - - /// 2 columns of 3 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<2, 3, float, mediump> mediump_mat2x3; + + /// 2 columns of 3 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 tmat2x3<float, highp> highp_mat2x3; - + typedef mat<2, 3, float, highp> highp_mat2x3; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 2 columns of 4 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 2 columns of 4 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 tmat2x4<float, lowp> lowp_mat2x4; - - /// 2 columns of 4 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<2, 4, float, lowp> lowp_mat2x4; + + /// 2 columns of 4 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 tmat2x4<float, mediump> mediump_mat2x4; - - /// 2 columns of 4 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<2, 4, float, mediump> mediump_mat2x4; + + /// 2 columns of 4 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 tmat2x4<float, highp> highp_mat2x4; - + typedef mat<2, 4, float, highp> highp_mat2x4; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 2 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 3 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 tmat3x2<float, lowp> lowp_mat3x2; - - /// 3 columns of 2 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 2, float, lowp> lowp_mat3x2; + + /// 3 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 tmat3x2<float, mediump> mediump_mat3x2; - - /// 3 columns of 2 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 2, float, mediump> mediump_mat3x2; + + /// 3 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 tmat3x2<float, highp> highp_mat3x2; - + typedef mat<3, 2, float, highp> highp_mat3x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 3 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 3 columns of 3 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 tmat3x3<float, lowp> lowp_mat3; - - /// 3 columns of 3 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 3, float, lowp> lowp_mat3; + + /// 3 columns of 3 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 tmat3x3<float, mediump> mediump_mat3; - - /// 3 columns of 3 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 3, float, mediump> mediump_mat3; + + /// 3 columns of 3 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 tmat3x3<float, highp> highp_mat3; - - /// 3 columns of 3 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 3, float, highp> highp_mat3; + + /// 3 columns of 3 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 tmat3x3<float, lowp> lowp_mat3x3; - - /// 3 columns of 3 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 3, float, lowp> lowp_mat3x3; + + /// 3 columns of 3 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 tmat3x3<float, mediump> mediump_mat3x3; - - /// 3 columns of 3 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 3, float, mediump> mediump_mat3x3; + + /// 3 columns of 3 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 tmat3x3<float, highp> highp_mat3x3; - + typedef mat<3, 3, float, highp> highp_mat3x3; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 4 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 3 columns of 4 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 tmat3x4<float, lowp> lowp_mat3x4; - - /// 3 columns of 4 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 4, float, lowp> lowp_mat3x4; + + /// 3 columns of 4 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 tmat3x4<float, mediump> mediump_mat3x4; - - /// 3 columns of 4 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<3, 4, float, mediump> mediump_mat3x4; + + /// 3 columns of 4 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 tmat3x4<float, highp> highp_mat3x4; - + typedef mat<3, 4, float, highp> highp_mat3x4; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 4 columns of 2 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 4 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 tmat4x2<float, lowp> lowp_mat4x2; - - /// 4 columns of 2 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 2, float, lowp> lowp_mat4x2; + + /// 4 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 tmat4x2<float, mediump> mediump_mat4x2; - - /// 4 columns of 2 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 2, float, mediump> mediump_mat4x2; + + /// 4 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 tmat4x2<float, highp> highp_mat4x2; - + typedef mat<4, 2, float, highp> highp_mat4x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 4 columns of 3 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 4 columns of 3 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 tmat4x3<float, lowp> lowp_mat4x3; - - /// 4 columns of 3 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 3, float, lowp> lowp_mat4x3; + + /// 4 columns of 3 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 tmat4x3<float, mediump> mediump_mat4x3; - - /// 4 columns of 3 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 3, float, mediump> mediump_mat4x3; + + /// 4 columns of 3 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 tmat4x3<float, highp> highp_mat4x3; - + typedef mat<4, 3, float, highp> highp_mat4x3; + /// @} - - + + /// @addtogroup core_precision /// @{ - - /// 4 columns of 4 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + + /// 4 columns of 4 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 tmat4x4<float, lowp> lowp_mat4; - - /// 4 columns of 4 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 4, float, lowp> lowp_mat4; + + /// 4 columns of 4 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 tmat4x4<float, mediump> mediump_mat4; - - /// 4 columns of 4 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 4, float, mediump> mediump_mat4; + + /// 4 columns of 4 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 tmat4x4<float, highp> highp_mat4; - - /// 4 columns of 4 components matrix of low precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 4, float, highp> highp_mat4; + + /// 4 columns of 4 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 tmat4x4<float, lowp> lowp_mat4x4; - - /// 4 columns of 4 components matrix of medium precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 4, float, lowp> lowp_mat4x4; + + /// 4 columns of 4 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 tmat4x4<float, mediump> mediump_mat4x4; - - /// 4 columns of 4 components matrix of high precision floating-point numbers. - /// There is no guarantee on the actual precision. + typedef mat<4, 4, float, mediump> mediump_mat4x4; + + /// 4 columns of 4 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 tmat4x4<float, highp> highp_mat4x4; - + typedef mat<4, 4, float, highp> highp_mat4x4; + /// @} - + /// @addtogroup core_types /// @{ - + ////////////////////////// // Float definition - + #if(defined(GLM_PRECISION_LOWP_FLOAT)) typedef lowp_mat2x2 mat2x2; typedef lowp_mat2x3 mat2x3; @@ -352,333 +351,333 @@ namespace detail typedef mediump_mat4x2 mat4x2; typedef mediump_mat4x3 mat4x3; typedef mediump_mat4x4 mat4x4; -#else +#else //! 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; - + //! 2 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> typedef highp_mat2x3 mat2x3; - + //! 2 columns of 4 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_mat2x4 mat2x4; - + //! 3 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_mat3x2 mat3x2; - + //! 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> typedef highp_mat3x3 mat3x3; - + //! 3 columns of 4 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_mat3x4 mat3x4; - + //! 4 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_mat4x2 mat4x2; - + //! 4 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> typedef highp_mat4x3 mat4x3; - + //! 4 columns of 4 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_mat4x4 mat4x4; - + #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> typedef mat3x3 mat3; - + //! 4 columns of 4 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 mat4x4 mat4; - + ////////////////////////// // Double definition - + /// @addtogroup core_precision /// @{ - - /// 2 columns of 2 components matrix of low precision floating-point numbers. + + /// 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 tmat2x2<double, lowp> lowp_dmat2; - - /// 2 columns of 2 components matrix of medium precision floating-point numbers. + 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 tmat2x2<double, mediump> mediump_dmat2; - - /// 2 columns of 2 components matrix of high precision floating-point numbers. + 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 tmat2x2<double, highp> highp_dmat2; - - /// 2 columns of 2 components matrix of low precision floating-point numbers. + 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 tmat2x2<double, lowp> lowp_dmat2x2; - - /// 2 columns of 2 components matrix of medium precision floating-point numbers. + 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 tmat2x2<double, mediump> mediump_dmat2x2; - - /// 2 columns of 2 components matrix of high precision floating-point numbers. + 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 tmat2x2<double, highp> highp_dmat2x2; - + typedef mat<2, 2, double, highp> highp_dmat2x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 2 columns of 3 components matrix of low precision floating-point numbers. + + /// 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> /// @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 tmat2x3<double, lowp> lowp_dmat2x3; - - /// 2 columns of 3 components matrix of medium precision floating-point numbers. + typedef mat<2, 3, double, lowp> lowp_dmat2x3; + + /// 2 columns of 3 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 tmat2x3<double, mediump> mediump_dmat2x3; - - /// 2 columns of 3 components matrix of high precision floating-point numbers. + typedef mat<2, 3, double, mediump> mediump_dmat2x3; + + /// 2 columns of 3 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 tmat2x3<double, highp> highp_dmat2x3; - + typedef mat<2, 3, double, highp> highp_dmat2x3; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 2 columns of 4 components matrix of low precision floating-point numbers. + + /// 2 columns of 4 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 tmat2x4<double, lowp> lowp_dmat2x4; - - /// 2 columns of 4 components matrix of medium precision floating-point numbers. + typedef mat<2, 4, double, lowp> lowp_dmat2x4; + + /// 2 columns of 4 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 tmat2x4<double, mediump> mediump_dmat2x4; - - /// 2 columns of 4 components matrix of high precision floating-point numbers. + typedef mat<2, 4, double, mediump> mediump_dmat2x4; + + /// 2 columns of 4 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 tmat2x4<double, highp> highp_dmat2x4; - + typedef mat<2, 4, double, highp> highp_dmat2x4; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 2 components matrix of low precision floating-point numbers. + + /// 3 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 tmat3x2<double, lowp> lowp_dmat3x2; - - /// 3 columns of 2 components matrix of medium precision floating-point numbers. + typedef mat<3, 2, double, lowp> lowp_dmat3x2; + + /// 3 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 tmat3x2<double, mediump> mediump_dmat3x2; - - /// 3 columns of 2 components matrix of high precision floating-point numbers. + typedef mat<3, 2, double, mediump> mediump_dmat3x2; + + /// 3 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 tmat3x2<double, highp> highp_dmat3x2; - + typedef mat<3, 2, double, highp> highp_dmat3x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 3 components matrix of low precision floating-point numbers. + + /// 3 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> /// @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 tmat3x3<float, lowp> lowp_dmat3; - - /// 3 columns of 3 components matrix of medium precision floating-point numbers. + typedef mat<3, 3, float, lowp> lowp_dmat3; + + /// 3 columns of 3 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 tmat3x3<double, mediump> mediump_dmat3; - - /// 3 columns of 3 components matrix of high precision floating-point numbers. + typedef mat<3, 3, double, mediump> mediump_dmat3; + + /// 3 columns of 3 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 tmat3x3<double, highp> highp_dmat3; - - /// 3 columns of 3 components matrix of low precision floating-point numbers. + typedef mat<3, 3, double, highp> highp_dmat3; + + /// 3 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> /// @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 tmat3x3<double, lowp> lowp_dmat3x3; - - /// 3 columns of 3 components matrix of medium precision floating-point numbers. + typedef mat<3, 3, double, lowp> lowp_dmat3x3; + + /// 3 columns of 3 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 tmat3x3<double, mediump> mediump_dmat3x3; - - /// 3 columns of 3 components matrix of high precision floating-point numbers. + typedef mat<3, 3, double, mediump> mediump_dmat3x3; + + /// 3 columns of 3 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 tmat3x3<double, highp> highp_dmat3x3; - + typedef mat<3, 3, double, highp> highp_dmat3x3; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 3 columns of 4 components matrix of low precision floating-point numbers. + + /// 3 columns of 4 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 tmat3x4<double, lowp> lowp_dmat3x4; - - /// 3 columns of 4 components matrix of medium precision floating-point numbers. + typedef mat<3, 4, double, lowp> lowp_dmat3x4; + + /// 3 columns of 4 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 tmat3x4<double, mediump> mediump_dmat3x4; - - /// 3 columns of 4 components matrix of high precision floating-point numbers. + typedef mat<3, 4, double, mediump> mediump_dmat3x4; + + /// 3 columns of 4 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 tmat3x4<double, highp> highp_dmat3x4; - + typedef mat<3, 4, double, highp> highp_dmat3x4; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 4 columns of 2 components matrix of low precision floating-point numbers. + + /// 4 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 tmat4x2<double, lowp> lowp_dmat4x2; - - /// 4 columns of 2 components matrix of medium precision floating-point numbers. + typedef mat<4, 2, double, lowp> lowp_dmat4x2; + + /// 4 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 tmat4x2<double, mediump> mediump_dmat4x2; - - /// 4 columns of 2 components matrix of high precision floating-point numbers. + typedef mat<4, 2, double, mediump> mediump_dmat4x2; + + /// 4 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 tmat4x2<double, highp> highp_dmat4x2; - + typedef mat<4, 2, double, highp> highp_dmat4x2; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 4 columns of 3 components matrix of low precision floating-point numbers. + + /// 4 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> /// @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 tmat4x3<double, lowp> lowp_dmat4x3; - - /// 4 columns of 3 components matrix of medium precision floating-point numbers. + typedef mat<4, 3, double, lowp> lowp_dmat4x3; + + /// 4 columns of 3 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 tmat4x3<double, mediump> mediump_dmat4x3; - - /// 4 columns of 3 components matrix of high precision floating-point numbers. + typedef mat<4, 3, double, mediump> mediump_dmat4x3; + + /// 4 columns of 3 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 tmat4x3<double, highp> highp_dmat4x3; - + typedef mat<4, 3, double, highp> highp_dmat4x3; + /// @} - + /// @addtogroup core_precision /// @{ - - /// 4 columns of 4 components matrix of low precision floating-point numbers. + + /// 4 columns of 4 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 tmat4x4<double, lowp> lowp_dmat4; - - /// 4 columns of 4 components matrix of medium precision floating-point numbers. + typedef mat<4, 4, double, lowp> lowp_dmat4; + + /// 4 columns of 4 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 tmat4x4<double, mediump> mediump_dmat4; - - /// 4 columns of 4 components matrix of high precision floating-point numbers. + typedef mat<4, 4, double, mediump> mediump_dmat4; + + /// 4 columns of 4 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 tmat4x4<double, highp> highp_dmat4; - - /// 4 columns of 4 components matrix of low precision floating-point numbers. + typedef mat<4, 4, double, highp> highp_dmat4; + + /// 4 columns of 4 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 tmat4x4<double, lowp> lowp_dmat4x4; - - /// 4 columns of 4 components matrix of medium precision floating-point numbers. + typedef mat<4, 4, double, lowp> lowp_dmat4x4; + + /// 4 columns of 4 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 tmat4x4<double, mediump> mediump_dmat4x4; - - /// 4 columns of 4 components matrix of high precision floating-point numbers. + typedef mat<4, 4, double, mediump> mediump_dmat4x4; + + /// 4 columns of 4 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 tmat4x4<double, highp> highp_dmat4x4; - + typedef mat<4, 4, double, highp> highp_dmat4x4; + /// @} - + #if(defined(GLM_PRECISION_LOWP_DOUBLE)) typedef lowp_dmat2x2 dmat2x2; typedef lowp_dmat2x3 dmat2x3; @@ -700,68 +699,68 @@ namespace detail typedef mediump_dmat4x3 dmat4x3; typedef mediump_dmat4x4 dmat4x4; #else //defined(GLM_PRECISION_HIGHP_DOUBLE) - - //! 2 * 2 matrix of double-precision floating-point numbers. + + //! 2 * 2 matrix of double-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> typedef highp_dmat2x2 dmat2; - - //! 3 * 3 matrix of double-precision floating-point numbers. + + //! 3 * 3 matrix of double-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> typedef highp_dmat3x3 dmat3; - - //! 4 * 4 matrix of double-precision floating-point numbers. + + //! 4 * 4 matrix of double-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> typedef highp_dmat4x4 dmat4; - - //! 2 * 2 matrix of double-precision floating-point numbers. + + //! 2 * 2 matrix of double-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> typedef highp_dmat2x2 dmat2x2; - - //! 2 * 3 matrix of double-precision floating-point numbers. + + //! 2 * 3 matrix of double-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> typedef highp_dmat2x3 dmat2x3; - - //! 2 * 4 matrix of double-precision floating-point numbers. + + //! 2 * 4 matrix of double-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> typedef highp_dmat2x4 dmat2x4; - - //! 3 * 2 matrix of double-precision floating-point numbers. + + //! 3 * 2 matrix of double-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> typedef highp_dmat3x2 dmat3x2; - - /// 3 * 3 matrix of double-precision floating-point numbers. + + /// 3 * 3 matrix of double-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> typedef highp_dmat3x3 dmat3x3; - - /// 3 * 4 matrix of double-precision floating-point numbers. + + /// 3 * 4 matrix of double-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> typedef highp_dmat3x4 dmat3x4; - - /// 4 * 2 matrix of double-precision floating-point numbers. + + /// 4 * 2 matrix of double-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> typedef highp_dmat4x2 dmat4x2; - - /// 4 * 3 matrix of double-precision floating-point numbers. + + /// 4 * 3 matrix of double-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> typedef highp_dmat4x3 dmat4x3; - - /// 4 * 4 matrix of double-precision floating-point numbers. + + /// 4 * 4 matrix of double-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> typedef highp_dmat4x4 dmat4x4; #endif//GLM_PRECISION - + /// @} }//namespace glm |