768 lines
40 KiB
C++
768 lines
40 KiB
C++
/// @ref core
|
|
/// @file glm/detail/type_mat.hpp
|
|
|
|
#pragma once
|
|
|
|
#include "precision.hpp"
|
|
|
|
namespace glm{
|
|
namespace detail
|
|
{
|
|
template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
|
|
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);
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 2 columns of 2 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 2 columns of 3 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 2 columns of 4 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 2 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 3 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 4 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 2 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 3 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 4 components matrix of low precision floating-point numbers.
|
|
/// There is no guarantee on the actual precision.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_types
|
|
/// @{
|
|
|
|
//////////////////////////
|
|
// Float definition
|
|
|
|
#if(defined(GLM_PRECISION_LOWP_FLOAT))
|
|
typedef lowp_mat2x2 mat2x2;
|
|
typedef lowp_mat2x3 mat2x3;
|
|
typedef lowp_mat2x4 mat2x4;
|
|
typedef lowp_mat3x2 mat3x2;
|
|
typedef lowp_mat3x3 mat3x3;
|
|
typedef lowp_mat3x4 mat3x4;
|
|
typedef lowp_mat4x2 mat4x2;
|
|
typedef lowp_mat4x3 mat4x3;
|
|
typedef lowp_mat4x4 mat4x4;
|
|
#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
|
|
typedef mediump_mat2x2 mat2x2;
|
|
typedef mediump_mat2x3 mat2x3;
|
|
typedef mediump_mat2x4 mat2x4;
|
|
typedef mediump_mat3x2 mat3x2;
|
|
typedef mediump_mat3x3 mat3x3;
|
|
typedef mediump_mat3x4 mat3x4;
|
|
typedef mediump_mat4x2 mat4x2;
|
|
typedef mediump_mat4x3 mat4x3;
|
|
typedef mediump_mat4x4 mat4x4;
|
|
#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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 2 columns of 3 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 2 columns of 4 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 2 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 3 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 3 columns of 4 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 2 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 3 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
/// @addtogroup core_precision
|
|
/// @{
|
|
|
|
/// 4 columns of 4 components matrix of low precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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;
|
|
|
|
/// @}
|
|
|
|
#if(defined(GLM_PRECISION_LOWP_DOUBLE))
|
|
typedef lowp_dmat2x2 dmat2x2;
|
|
typedef lowp_dmat2x3 dmat2x3;
|
|
typedef lowp_dmat2x4 dmat2x4;
|
|
typedef lowp_dmat3x2 dmat3x2;
|
|
typedef lowp_dmat3x3 dmat3x3;
|
|
typedef lowp_dmat3x4 dmat3x4;
|
|
typedef lowp_dmat4x2 dmat4x2;
|
|
typedef lowp_dmat4x3 dmat4x3;
|
|
typedef lowp_dmat4x4 dmat4x4;
|
|
#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
|
|
typedef mediump_dmat2x2 dmat2x2;
|
|
typedef mediump_dmat2x3 dmat2x3;
|
|
typedef mediump_dmat2x4 dmat2x4;
|
|
typedef mediump_dmat3x2 dmat3x2;
|
|
typedef mediump_dmat3x3 dmat3x3;
|
|
typedef mediump_dmat3x4 dmat3x4;
|
|
typedef mediump_dmat4x2 dmat4x2;
|
|
typedef mediump_dmat4x3 dmat4x3;
|
|
typedef mediump_dmat4x4 dmat4x4;
|
|
#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
|
|
|
|
//! 2 * 2 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat2x2 dmat2;
|
|
|
|
//! 3 * 3 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat3x3 dmat3;
|
|
|
|
//! 4 * 4 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat4x4 dmat4;
|
|
|
|
//! 2 * 2 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat2x2 dmat2x2;
|
|
|
|
//! 2 * 3 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat2x3 dmat2x3;
|
|
|
|
//! 2 * 4 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat2x4 dmat2x4;
|
|
|
|
//! 3 * 2 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat3x2 dmat3x2;
|
|
|
|
/// 3 * 3 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat3x3 dmat3x3;
|
|
|
|
/// 3 * 4 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat3x4 dmat3x4;
|
|
|
|
/// 4 * 2 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat4x2 dmat4x2;
|
|
|
|
/// 4 * 3 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat4x3 dmat4x3;
|
|
|
|
/// 4 * 4 matrix of double-precision floating-point numbers.
|
|
///
|
|
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
|
|
typedef highp_dmat4x4 dmat4x4;
|
|
|
|
#endif//GLM_PRECISION
|
|
|
|
/// @}
|
|
}//namespace glm
|