From 9a2665d329c319f5feb8220cb08af9992c39b0b8 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 12 Dec 2011 10:54:09 +0000 Subject: [PATCH] Updated documentation reference --- doc/api-0.9.3/background2.jpg | Bin 64448 -> 0 bytes glm/core/type_mat2x2.hpp | 58 +++++++++++++---------- glm/core/type_mat2x3.hpp | 31 ++++++++----- glm/core/type_mat2x4.hpp | 30 ++++++++---- glm/core/type_mat3x2.hpp | 28 +++++++---- glm/core/type_mat3x3.hpp | 60 ++++++++++++++---------- glm/core/type_mat3x4.hpp | 30 ++++++++---- glm/core/type_mat4x2.hpp | 31 ++++++++----- glm/core/type_mat4x3.hpp | 31 ++++++++----- glm/core/type_mat4x4.hpp | 58 +++++++++++++---------- glm/core/type_vec2.hpp | 85 ++++++++++++++++++++-------------- glm/core/type_vec3.hpp | 85 ++++++++++++++++++++-------------- glm/core/type_vec4.hpp | 85 ++++++++++++++++++++-------------- 13 files changed, 369 insertions(+), 243 deletions(-) delete mode 100644 doc/api-0.9.3/background2.jpg diff --git a/doc/api-0.9.3/background2.jpg b/doc/api-0.9.3/background2.jpg deleted file mode 100644 index ba0357d518675687e51597dbe38efacabcef4bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64448 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 BDk}g0 diff --git a/glm/core/type_mat2x2.hpp b/glm/core/type_mat2x2.hpp index c13377b0..9422fc42 100644 --- a/glm/core/type_mat2x2.hpp +++ b/glm/core/type_mat2x2.hpp @@ -259,42 +259,52 @@ namespace detail int); } //namespace detail - //! 2 columns of 2 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 2 columns of 2 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 lowp_mat2; - //! 2 columns of 2 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 2 columns of 2 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 mediump_mat2; - //! 2 columns of 2 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 2 columns of 2 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 highp_mat2; - //! 2 columns of 2 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 2 columns of 2 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 lowp_mat2x2; - //! 2 columns of 2 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 2 columns of 2 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 mediump_mat2x2; - //! 2 columns of 2 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 2 columns of 2 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x2 highp_mat2x2; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat2x3.hpp b/glm/core/type_mat2x3.hpp index c7021c8e..63970e76 100644 --- a/glm/core/type_mat2x3.hpp +++ b/glm/core/type_mat2x3.hpp @@ -225,24 +225,31 @@ namespace detail } //namespace detail - //! 2 columns of 3 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 2 columns of 3 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x3 lowp_mat2x3; - //! 2 columns of 3 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 2 columns of 3 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x3 mediump_mat2x3; - //! 2 columns of 3 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 2 columns of 3 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x3 highp_mat2x3; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat2x4.hpp b/glm/core/type_mat2x4.hpp index 081da489..8be422a7 100644 --- a/glm/core/type_mat2x4.hpp +++ b/glm/core/type_mat2x4.hpp @@ -227,19 +227,31 @@ namespace detail } //namespace detail - //! 2 columns of 4 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + /// @addtogroup core_precision + /// @{ + + /// 2 columns of 4 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x4 lowp_mat2x4; - //! 2 columns of 4 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + + /// 2 columns of 4 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x4 mediump_mat2x4; - //! 2 columns of 4 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + + /// 2 columns of 4 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat2x4 highp_mat2x4; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat3x2.hpp b/glm/core/type_mat3x2.hpp index feaa998e..4125d7b6 100644 --- a/glm/core/type_mat3x2.hpp +++ b/glm/core/type_mat3x2.hpp @@ -233,21 +233,31 @@ namespace detail } //namespace detail - //! 3 columns of 2 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + /// @addtogroup core_precision + /// @{ + + /// 3 columns of 2 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x2 lowp_mat3x2; - //! 3 columns of 2 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + /// 3 columns of 2 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x2 mediump_mat3x2; - //! 3 columns of 2 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + /// 3 columns of 2 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x2 highp_mat3x2; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat3x3.hpp b/glm/core/type_mat3x3.hpp index b7715410..b12fbf0b 100644 --- a/glm/core/type_mat3x3.hpp +++ b/glm/core/type_mat3x3.hpp @@ -263,40 +263,52 @@ namespace detail } //namespace detail - //! 3 columns of 3 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 3 columns of 3 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 lowp_mat3; - //! 3 columns of 3 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + + /// 3 columns of 3 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 mediump_mat3; - //! 3 columns of 3 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + + /// 3 columns of 3 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 highp_mat3; - //! 3 columns of 3 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 3 columns of 3 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 lowp_mat3x3; - //! 3 columns of 3 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 3 columns of 3 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 mediump_mat3x3; - //! 3 columns of 3 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 3 columns of 3 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x3 highp_mat3x3; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat3x4.hpp b/glm/core/type_mat3x4.hpp index bb620f30..d4451896 100644 --- a/glm/core/type_mat3x4.hpp +++ b/glm/core/type_mat3x4.hpp @@ -233,19 +233,31 @@ namespace detail }//namespace detail - //! 3 columns of 4 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + /// @addtogroup core_precision + /// @{ + + /// 3 columns of 4 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x4 lowp_mat3x4; - //! 3 columns of 4 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + + /// 3 columns of 4 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x4 mediump_mat3x4; - //! 3 columns of 4 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + + /// 3 columns of 4 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat3x4 highp_mat3x4; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat4x2.hpp b/glm/core/type_mat4x2.hpp index 33e2a957..e5438352 100644 --- a/glm/core/type_mat4x2.hpp +++ b/glm/core/type_mat4x2.hpp @@ -238,24 +238,31 @@ namespace detail } //namespace detail - //! 4 columns of 2 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 4 columns of 2 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x2 lowp_mat4x2; - //! 4 columns of 2 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 4 columns of 2 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x2 mediump_mat4x2; - //! 4 columns of 2 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 4 columns of 2 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x2 highp_mat4x2; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat4x3.hpp b/glm/core/type_mat4x3.hpp index 5852fa31..7895e727 100644 --- a/glm/core/type_mat4x3.hpp +++ b/glm/core/type_mat4x3.hpp @@ -236,24 +236,31 @@ namespace detail }//namespace detail - //! 4 columns of 3 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 4 columns of 3 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x3 lowp_mat4x3; - //! 4 columns of 3 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 4 columns of 3 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x3 mediump_mat4x3; - //! 4 columns of 3 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) - //! \ingroup core_precision + /// 4 columns of 3 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x3 highp_mat4x3; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_mat4x4.hpp b/glm/core/type_mat4x4.hpp index 919e04e8..d9b6b4a9 100644 --- a/glm/core/type_mat4x4.hpp +++ b/glm/core/type_mat4x4.hpp @@ -264,42 +264,52 @@ namespace detail } //namespace detail - //! 4 columns of 4 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 4 columns of 4 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 lowp_mat4; - //! 4 columns of 4 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 4 columns of 4 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 mediump_mat4; - //! 4 columns of 4 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 4 columns of 4 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 highp_mat4; - //! 4 columns of 4 components matrix of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 4 columns of 4 components matrix of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 lowp_mat4x4; - //! 4 columns of 4 components matrix of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 4 columns of 4 components matrix of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 mediump_mat4x4; - //! 4 columns of 4 components matrix of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers - //! \ingroup core_precision + /// 4 columns of 4 components matrix of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see - GLSL 4.20.8 specification, section 4.1.6 Matrices + /// @see - GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tmat4x4 highp_mat4x4; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_vec2.hpp b/glm/core/type_vec2.hpp index e06a2218..650786f9 100644 --- a/glm/core/type_vec2.hpp +++ b/glm/core/type_vec2.hpp @@ -243,60 +243,73 @@ namespace detail } //namespace detail - //! 2 components vector of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 2 components vector of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 highp_vec2; - //! 2 components vector of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 mediump_vec2; - //! 2 components vector of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 lowp_vec2; - //! 2 components vector of high precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of high precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 highp_ivec2; - //! 2 components vector of medium precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of medium precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 mediump_ivec2; - //! 2 components vector of low precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of low precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 lowp_ivec2; - //! 2 components vector of high precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of high precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 highp_uvec2; - //! 2 components vector of medium precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of medium precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 mediump_uvec2; - //! 2 components vector of low precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 2 components vector of low precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec2 lowp_uvec2; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index 9179791b..4e19f4b9 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -268,60 +268,73 @@ namespace detail GLM_DETAIL_IS_VECTOR(tvec3); } //namespace detail - //! 3 components vector of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 3 components vector of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 highp_vec3; - //! 3 components vector of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 mediump_vec3; - //! 3 components vector of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 lowp_vec3; - //! 3 components vector of high precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of high precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 highp_ivec3; - //! 3 components vector of medium precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of medium precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 mediump_ivec3; - //! 3 components vector of low precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of low precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 lowp_ivec3; - //! 3 components vector of high precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of high precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 highp_uvec3; - //! 3 components vector of medium precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of medium precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 mediump_uvec3; - //! 3 components vector of low precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 3 components vector of low precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec3 lowp_uvec3; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/core/type_vec4.hpp b/glm/core/type_vec4.hpp index b795a9b2..b877aa52 100644 --- a/glm/core/type_vec4.hpp +++ b/glm/core/type_vec4.hpp @@ -325,60 +325,73 @@ namespace detail GLM_DETAIL_IS_VECTOR(tvec4); }//namespace detail - //! 4 components vector of high precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// @addtogroup core_precision + /// @{ + + /// 4 components vector of high precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 highp_vec4; - //! 4 components vector of medium precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of medium precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 mediump_vec4; - //! 4 components vector of low precision floating-point numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of low precision floating-point numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 lowp_vec4; - //! 4 components vector of high precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of high precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 highp_ivec4; - //! 4 components vector of medium precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of medium precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 mediump_ivec4; - //! 4 components vector of low precision signed integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of low precision signed integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 lowp_ivec4; - //! 4 components vector of high precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of high precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 highp_uvec4; - //! 4 components vector of medium precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of medium precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 mediump_uvec4; - //! 4 components vector of low precision unsigned integer numbers. - //! There is no guarantee on the actual precision. - //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. - //! \ingroup core_precision + /// 4 components vector of low precision unsigned integer numbers. + /// There is no guarantee on the actual precision. + /// + /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors + /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier typedef detail::tvec4 lowp_uvec4; + /// @} }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE