From 2877f4eda3d1b0c7431039e3142ecf1a282a34b1 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Tue, 21 Aug 2018 20:40:38 +0500 Subject: Update glm to 0.9.9.0 --- external/include/glm/detail/type_mat.hpp | 695 +++++++++++++++---------------- 1 file changed, 347 insertions(+), 348 deletions(-) (limited to 'external/include/glm/detail/type_mat.hpp') 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 class colType, template class rowType> + template struct outerProduct_trait{}; }//namespace detail - template struct tvec2; - template struct tvec3; - template struct tvec4; - template struct tmat2x2; - template struct tmat2x3; - template struct tmat2x4; - template struct tmat3x2; - template struct tmat3x3; - template struct tmat3x4; - template struct tmat4x2; - template struct tmat4x3; - template struct tmat4x4; - - template class matType> - GLM_FUNC_DECL matType inverse(matType const & m); +#if GLM_HAS_TEMPLATE_ALIASES + template using tmat2x2 = mat<2, 2, T, Q>; + template using tmat2x3 = mat<2, 3, T, Q>; + template using tmat2x4 = mat<2, 4, T, Q>; + template using tmat3x2 = mat<3, 2, T, Q>; + template using tmat3x3 = mat<3, 3, T, Q>; + template using tmat3x4 = mat<3, 4, T, Q>; + template using tmat4x2 = mat<4, 2, T, Q>; + template using tmat4x3 = mat<4, 3, T, Q>; + template using tmat4x4 = mat<4, 4, T, Q>; +#endif//GLM_HAS_TEMPLATE_ALIASES + + template + GLM_FUNC_DECL mat inverse(mat 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat2x2 mat2x2; - + //! 2 columns of 3 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat2x3 mat2x3; - + //! 2 columns of 4 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat2x4 mat2x4; - + //! 3 columns of 2 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat3x2 mat3x2; - + //! 3 columns of 3 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat3x3 mat3x3; - + //! 3 columns of 4 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat3x4 mat3x4; - + //! 4 columns of 2 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat4x2 mat4x2; - + //! 4 columns of 3 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat4x3 mat4x3; - + //! 4 columns of 4 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_mat4x4 mat4x4; - + #endif//GLM_PRECISION - + //! 2 columns of 2 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef mat2x2 mat2; - + //! 3 columns of 3 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef mat3x3 mat3; - + //! 4 columns of 4 components matrix of floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat2x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat3x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x2 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x3 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef tmat4x4 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 GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat2x2 dmat2; - - //! 3 * 3 matrix of double-precision floating-point numbers. + + //! 3 * 3 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat3x3 dmat3; - - //! 4 * 4 matrix of double-precision floating-point numbers. + + //! 4 * 4 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat4x4 dmat4; - - //! 2 * 2 matrix of double-precision floating-point numbers. + + //! 2 * 2 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat2x2 dmat2x2; - - //! 2 * 3 matrix of double-precision floating-point numbers. + + //! 2 * 3 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat2x3 dmat2x3; - - //! 2 * 4 matrix of double-precision floating-point numbers. + + //! 2 * 4 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat2x4 dmat2x4; - - //! 3 * 2 matrix of double-precision floating-point numbers. + + //! 3 * 2 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat3x2 dmat3x2; - - /// 3 * 3 matrix of double-precision floating-point numbers. + + /// 3 * 3 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat3x3 dmat3x3; - - /// 3 * 4 matrix of double-precision floating-point numbers. + + /// 3 * 4 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat3x4 dmat3x4; - - /// 4 * 2 matrix of double-precision floating-point numbers. + + /// 4 * 2 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat4x2 dmat4x2; - - /// 4 * 3 matrix of double-precision floating-point numbers. + + /// 4 * 3 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat4x3 dmat4x3; - - /// 4 * 4 matrix of double-precision floating-point numbers. + + /// 4 * 4 matrix of double-qualifier floating-point numbers. /// /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices typedef highp_dmat4x4 dmat4x4; #endif//GLM_PRECISION - + /// @} }//namespace glm -- cgit v1.2.3