1 /// @ref core 2 /// @file glm/detail/type_mat.hpp 3 4 #pragma once 5 6 #include "precision.hpp" 7 8 namespace glm{ 9 namespace detail 10 { 11 template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType> 12 struct outerProduct_trait{}; 13 }//namespace detail 14 15 template <typename T, precision P> struct tvec2; 16 template <typename T, precision P> struct tvec3; 17 template <typename T, precision P> struct tvec4; 18 template <typename T, precision P> struct tmat2x2; 19 template <typename T, precision P> struct tmat2x3; 20 template <typename T, precision P> struct tmat2x4; 21 template <typename T, precision P> struct tmat3x2; 22 template <typename T, precision P> struct tmat3x3; 23 template <typename T, precision P> struct tmat3x4; 24 template <typename T, precision P> struct tmat4x2; 25 template <typename T, precision P> struct tmat4x3; 26 template <typename T, precision P> struct tmat4x4; 27 28 template <typename T, precision P, template <typename, precision> class matType> 29 GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m); 30 31 /// @addtogroup core_precision 32 /// @{ 33 34 /// 2 columns of 2 components matrix of low precision floating-point numbers. 35 /// There is no guarantee on the actual precision. 36 /// 37 /// @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> 38 /// @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> 39 typedef tmat2x2<float, lowp> lowp_mat2; 40 41 /// 2 columns of 2 components matrix of medium precision floating-point numbers. 42 /// There is no guarantee on the actual precision. 43 /// 44 /// @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> 45 /// @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> 46 typedef tmat2x2<float, mediump> mediump_mat2; 47 48 /// 2 columns of 2 components matrix of high precision floating-point numbers. 49 /// There is no guarantee on the actual precision. 50 /// 51 /// @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> 52 /// @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> 53 typedef tmat2x2<float, highp> highp_mat2; 54 55 /// 2 columns of 2 components matrix of low precision floating-point numbers. 56 /// There is no guarantee on the actual precision. 57 /// 58 /// @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> 59 /// @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> 60 typedef tmat2x2<float, lowp> lowp_mat2x2; 61 62 /// 2 columns of 2 components matrix of medium precision floating-point numbers. 63 /// There is no guarantee on the actual precision. 64 /// 65 /// @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> 66 /// @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> 67 typedef tmat2x2<float, mediump> mediump_mat2x2; 68 69 /// 2 columns of 2 components matrix of high precision floating-point numbers. 70 /// There is no guarantee on the actual precision. 71 /// 72 /// @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> 73 /// @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> 74 typedef tmat2x2<float, highp> highp_mat2x2; 75 76 /// @} 77 78 /// @addtogroup core_precision 79 /// @{ 80 81 /// 2 columns of 3 components matrix of low precision floating-point numbers. 82 /// There is no guarantee on the actual precision. 83 /// 84 /// @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> 85 /// @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> 86 typedef tmat2x3<float, lowp> lowp_mat2x3; 87 88 /// 2 columns of 3 components matrix of medium precision floating-point numbers. 89 /// There is no guarantee on the actual precision. 90 /// 91 /// @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> 92 /// @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> 93 typedef tmat2x3<float, mediump> mediump_mat2x3; 94 95 /// 2 columns of 3 components matrix of high precision floating-point numbers. 96 /// There is no guarantee on the actual precision. 97 /// 98 /// @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> 99 /// @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> 100 typedef tmat2x3<float, highp> highp_mat2x3; 101 102 /// @} 103 104 /// @addtogroup core_precision 105 /// @{ 106 107 /// 2 columns of 4 components matrix of low precision floating-point numbers. 108 /// There is no guarantee on the actual precision. 109 /// 110 /// @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> 111 /// @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> 112 typedef tmat2x4<float, lowp> lowp_mat2x4; 113 114 /// 2 columns of 4 components matrix of medium precision floating-point numbers. 115 /// There is no guarantee on the actual precision. 116 /// 117 /// @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> 118 /// @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> 119 typedef tmat2x4<float, mediump> mediump_mat2x4; 120 121 /// 2 columns of 4 components matrix of high precision floating-point numbers. 122 /// There is no guarantee on the actual precision. 123 /// 124 /// @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> 125 /// @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> 126 typedef tmat2x4<float, highp> highp_mat2x4; 127 128 /// @} 129 130 /// @addtogroup core_precision 131 /// @{ 132 133 /// 3 columns of 2 components matrix of low precision floating-point numbers. 134 /// There is no guarantee on the actual precision. 135 /// 136 /// @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> 137 /// @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> 138 typedef tmat3x2<float, lowp> lowp_mat3x2; 139 140 /// 3 columns of 2 components matrix of medium precision floating-point numbers. 141 /// There is no guarantee on the actual precision. 142 /// 143 /// @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> 144 /// @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> 145 typedef tmat3x2<float, mediump> mediump_mat3x2; 146 147 /// 3 columns of 2 components matrix of high precision floating-point numbers. 148 /// There is no guarantee on the actual precision. 149 /// 150 /// @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> 151 /// @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> 152 typedef tmat3x2<float, highp> highp_mat3x2; 153 154 /// @} 155 156 /// @addtogroup core_precision 157 /// @{ 158 159 /// 3 columns of 3 components matrix of low precision floating-point numbers. 160 /// There is no guarantee on the actual precision. 161 /// 162 /// @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> 163 /// @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> 164 typedef tmat3x3<float, lowp> lowp_mat3; 165 166 /// 3 columns of 3 components matrix of medium precision floating-point numbers. 167 /// There is no guarantee on the actual precision. 168 /// 169 /// @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> 170 /// @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> 171 typedef tmat3x3<float, mediump> mediump_mat3; 172 173 /// 3 columns of 3 components matrix of high precision floating-point numbers. 174 /// There is no guarantee on the actual precision. 175 /// 176 /// @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> 177 /// @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> 178 typedef tmat3x3<float, highp> highp_mat3; 179 180 /// 3 columns of 3 components matrix of low precision floating-point numbers. 181 /// There is no guarantee on the actual precision. 182 /// 183 /// @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> 184 /// @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> 185 typedef tmat3x3<float, lowp> lowp_mat3x3; 186 187 /// 3 columns of 3 components matrix of medium precision floating-point numbers. 188 /// There is no guarantee on the actual precision. 189 /// 190 /// @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> 191 /// @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> 192 typedef tmat3x3<float, mediump> mediump_mat3x3; 193 194 /// 3 columns of 3 components matrix of high precision floating-point numbers. 195 /// There is no guarantee on the actual precision. 196 /// 197 /// @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> 198 /// @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> 199 typedef tmat3x3<float, highp> highp_mat3x3; 200 201 /// @} 202 203 /// @addtogroup core_precision 204 /// @{ 205 206 /// 3 columns of 4 components matrix of low precision floating-point numbers. 207 /// There is no guarantee on the actual precision. 208 /// 209 /// @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> 210 /// @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> 211 typedef tmat3x4<float, lowp> lowp_mat3x4; 212 213 /// 3 columns of 4 components matrix of medium precision floating-point numbers. 214 /// There is no guarantee on the actual precision. 215 /// 216 /// @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> 217 /// @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> 218 typedef tmat3x4<float, mediump> mediump_mat3x4; 219 220 /// 3 columns of 4 components matrix of high precision floating-point numbers. 221 /// There is no guarantee on the actual precision. 222 /// 223 /// @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> 224 /// @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> 225 typedef tmat3x4<float, highp> highp_mat3x4; 226 227 /// @} 228 229 /// @addtogroup core_precision 230 /// @{ 231 232 /// 4 columns of 2 components matrix of low precision floating-point numbers. 233 /// There is no guarantee on the actual precision. 234 /// 235 /// @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> 236 /// @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> 237 typedef tmat4x2<float, lowp> lowp_mat4x2; 238 239 /// 4 columns of 2 components matrix of medium precision floating-point numbers. 240 /// There is no guarantee on the actual precision. 241 /// 242 /// @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> 243 /// @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> 244 typedef tmat4x2<float, mediump> mediump_mat4x2; 245 246 /// 4 columns of 2 components matrix of high precision floating-point numbers. 247 /// There is no guarantee on the actual precision. 248 /// 249 /// @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> 250 /// @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> 251 typedef tmat4x2<float, highp> highp_mat4x2; 252 253 /// @} 254 255 /// @addtogroup core_precision 256 /// @{ 257 258 /// 4 columns of 3 components matrix of low precision floating-point numbers. 259 /// There is no guarantee on the actual precision. 260 /// 261 /// @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> 262 /// @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> 263 typedef tmat4x3<float, lowp> lowp_mat4x3; 264 265 /// 4 columns of 3 components matrix of medium precision floating-point numbers. 266 /// There is no guarantee on the actual precision. 267 /// 268 /// @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> 269 /// @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> 270 typedef tmat4x3<float, mediump> mediump_mat4x3; 271 272 /// 4 columns of 3 components matrix of high precision floating-point numbers. 273 /// There is no guarantee on the actual precision. 274 /// 275 /// @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> 276 /// @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> 277 typedef tmat4x3<float, highp> highp_mat4x3; 278 279 /// @} 280 281 282 /// @addtogroup core_precision 283 /// @{ 284 285 /// 4 columns of 4 components matrix of low precision floating-point numbers. 286 /// There is no guarantee on the actual precision. 287 /// 288 /// @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> 289 /// @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> 290 typedef tmat4x4<float, lowp> lowp_mat4; 291 292 /// 4 columns of 4 components matrix of medium precision floating-point numbers. 293 /// There is no guarantee on the actual precision. 294 /// 295 /// @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> 296 /// @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> 297 typedef tmat4x4<float, mediump> mediump_mat4; 298 299 /// 4 columns of 4 components matrix of high precision floating-point numbers. 300 /// There is no guarantee on the actual precision. 301 /// 302 /// @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> 303 /// @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> 304 typedef tmat4x4<float, highp> highp_mat4; 305 306 /// 4 columns of 4 components matrix of low precision floating-point numbers. 307 /// There is no guarantee on the actual precision. 308 /// 309 /// @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> 310 /// @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> 311 typedef tmat4x4<float, lowp> lowp_mat4x4; 312 313 /// 4 columns of 4 components matrix of medium precision floating-point numbers. 314 /// There is no guarantee on the actual precision. 315 /// 316 /// @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> 317 /// @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> 318 typedef tmat4x4<float, mediump> mediump_mat4x4; 319 320 /// 4 columns of 4 components matrix of high precision floating-point numbers. 321 /// There is no guarantee on the actual precision. 322 /// 323 /// @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> 324 /// @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> 325 typedef tmat4x4<float, highp> highp_mat4x4; 326 327 /// @} 328 329 /// @addtogroup core_types 330 /// @{ 331 332 ////////////////////////// 333 // Float definition 334 335 #if(defined(GLM_PRECISION_LOWP_FLOAT)) 336 typedef lowp_mat2x2 mat2x2; 337 typedef lowp_mat2x3 mat2x3; 338 typedef lowp_mat2x4 mat2x4; 339 typedef lowp_mat3x2 mat3x2; 340 typedef lowp_mat3x3 mat3x3; 341 typedef lowp_mat3x4 mat3x4; 342 typedef lowp_mat4x2 mat4x2; 343 typedef lowp_mat4x3 mat4x3; 344 typedef lowp_mat4x4 mat4x4; 345 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 346 typedef mediump_mat2x2 mat2x2; 347 typedef mediump_mat2x3 mat2x3; 348 typedef mediump_mat2x4 mat2x4; 349 typedef mediump_mat3x2 mat3x2; 350 typedef mediump_mat3x3 mat3x3; 351 typedef mediump_mat3x4 mat3x4; 352 typedef mediump_mat4x2 mat4x2; 353 typedef mediump_mat4x3 mat4x3; 354 typedef mediump_mat4x4 mat4x4; 355 #else 356 //! 2 columns of 2 components matrix of floating-point numbers. 357 /// 358 /// @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> 359 typedef highp_mat2x2 mat2x2; 360 361 //! 2 columns of 3 components matrix of floating-point numbers. 362 /// 363 /// @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> 364 typedef highp_mat2x3 mat2x3; 365 366 //! 2 columns of 4 components matrix of floating-point numbers. 367 /// 368 /// @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> 369 typedef highp_mat2x4 mat2x4; 370 371 //! 3 columns of 2 components matrix of floating-point numbers. 372 /// 373 /// @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> 374 typedef highp_mat3x2 mat3x2; 375 376 //! 3 columns of 3 components matrix of floating-point numbers. 377 /// 378 /// @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> 379 typedef highp_mat3x3 mat3x3; 380 381 //! 3 columns of 4 components matrix of floating-point numbers. 382 /// 383 /// @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> 384 typedef highp_mat3x4 mat3x4; 385 386 //! 4 columns of 2 components matrix of floating-point numbers. 387 /// 388 /// @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> 389 typedef highp_mat4x2 mat4x2; 390 391 //! 4 columns of 3 components matrix of floating-point numbers. 392 /// 393 /// @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> 394 typedef highp_mat4x3 mat4x3; 395 396 //! 4 columns of 4 components matrix of floating-point numbers. 397 /// 398 /// @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> 399 typedef highp_mat4x4 mat4x4; 400 401 #endif//GLM_PRECISION 402 403 //! 2 columns of 2 components matrix of floating-point numbers. 404 /// 405 /// @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> 406 typedef mat2x2 mat2; 407 408 //! 3 columns of 3 components matrix of floating-point numbers. 409 /// 410 /// @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> 411 typedef mat3x3 mat3; 412 413 //! 4 columns of 4 components matrix of floating-point numbers. 414 /// 415 /// @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> 416 typedef mat4x4 mat4; 417 418 ////////////////////////// 419 // Double definition 420 421 /// @addtogroup core_precision 422 /// @{ 423 424 /// 2 columns of 2 components matrix of low precision floating-point numbers. 425 /// 426 /// @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> 427 /// @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> 428 typedef tmat2x2<double, lowp> lowp_dmat2; 429 430 /// 2 columns of 2 components matrix of medium precision floating-point numbers. 431 /// 432 /// @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> 433 /// @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> 434 typedef tmat2x2<double, mediump> mediump_dmat2; 435 436 /// 2 columns of 2 components matrix of high precision floating-point numbers. 437 /// 438 /// @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> 439 /// @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> 440 typedef tmat2x2<double, highp> highp_dmat2; 441 442 /// 2 columns of 2 components matrix of low precision floating-point numbers. 443 /// 444 /// @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> 445 /// @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> 446 typedef tmat2x2<double, lowp> lowp_dmat2x2; 447 448 /// 2 columns of 2 components matrix of medium precision floating-point numbers. 449 /// 450 /// @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> 451 /// @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> 452 typedef tmat2x2<double, mediump> mediump_dmat2x2; 453 454 /// 2 columns of 2 components matrix of high precision floating-point numbers. 455 /// 456 /// @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> 457 /// @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> 458 typedef tmat2x2<double, highp> highp_dmat2x2; 459 460 /// @} 461 462 /// @addtogroup core_precision 463 /// @{ 464 465 /// 2 columns of 3 components matrix of low precision floating-point numbers. 466 /// 467 /// @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> 468 /// @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> 469 typedef tmat2x3<double, lowp> lowp_dmat2x3; 470 471 /// 2 columns of 3 components matrix of medium precision floating-point numbers. 472 /// 473 /// @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> 474 /// @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> 475 typedef tmat2x3<double, mediump> mediump_dmat2x3; 476 477 /// 2 columns of 3 components matrix of high precision floating-point numbers. 478 /// 479 /// @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> 480 /// @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> 481 typedef tmat2x3<double, highp> highp_dmat2x3; 482 483 /// @} 484 485 /// @addtogroup core_precision 486 /// @{ 487 488 /// 2 columns of 4 components matrix of low precision floating-point numbers. 489 /// 490 /// @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> 491 /// @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> 492 typedef tmat2x4<double, lowp> lowp_dmat2x4; 493 494 /// 2 columns of 4 components matrix of medium precision floating-point numbers. 495 /// 496 /// @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> 497 /// @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> 498 typedef tmat2x4<double, mediump> mediump_dmat2x4; 499 500 /// 2 columns of 4 components matrix of high precision floating-point numbers. 501 /// 502 /// @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> 503 /// @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> 504 typedef tmat2x4<double, highp> highp_dmat2x4; 505 506 /// @} 507 508 /// @addtogroup core_precision 509 /// @{ 510 511 /// 3 columns of 2 components matrix of low precision floating-point numbers. 512 /// 513 /// @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> 514 /// @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> 515 typedef tmat3x2<double, lowp> lowp_dmat3x2; 516 517 /// 3 columns of 2 components matrix of medium precision floating-point numbers. 518 /// 519 /// @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> 520 /// @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> 521 typedef tmat3x2<double, mediump> mediump_dmat3x2; 522 523 /// 3 columns of 2 components matrix of high precision floating-point numbers. 524 /// 525 /// @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> 526 /// @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> 527 typedef tmat3x2<double, highp> highp_dmat3x2; 528 529 /// @} 530 531 /// @addtogroup core_precision 532 /// @{ 533 534 /// 3 columns of 3 components matrix of low precision floating-point numbers. 535 /// 536 /// @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> 537 /// @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> 538 typedef tmat3x3<float, lowp> lowp_dmat3; 539 540 /// 3 columns of 3 components matrix of medium precision floating-point numbers. 541 /// 542 /// @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> 543 /// @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> 544 typedef tmat3x3<double, mediump> mediump_dmat3; 545 546 /// 3 columns of 3 components matrix of high precision floating-point numbers. 547 /// 548 /// @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> 549 /// @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> 550 typedef tmat3x3<double, highp> highp_dmat3; 551 552 /// 3 columns of 3 components matrix of low precision floating-point numbers. 553 /// 554 /// @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> 555 /// @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> 556 typedef tmat3x3<double, lowp> lowp_dmat3x3; 557 558 /// 3 columns of 3 components matrix of medium precision floating-point numbers. 559 /// 560 /// @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> 561 /// @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> 562 typedef tmat3x3<double, mediump> mediump_dmat3x3; 563 564 /// 3 columns of 3 components matrix of high precision floating-point numbers. 565 /// 566 /// @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> 567 /// @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> 568 typedef tmat3x3<double, highp> highp_dmat3x3; 569 570 /// @} 571 572 /// @addtogroup core_precision 573 /// @{ 574 575 /// 3 columns of 4 components matrix of low precision floating-point numbers. 576 /// 577 /// @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> 578 /// @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> 579 typedef tmat3x4<double, lowp> lowp_dmat3x4; 580 581 /// 3 columns of 4 components matrix of medium precision floating-point numbers. 582 /// 583 /// @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> 584 /// @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> 585 typedef tmat3x4<double, mediump> mediump_dmat3x4; 586 587 /// 3 columns of 4 components matrix of high precision floating-point numbers. 588 /// 589 /// @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> 590 /// @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> 591 typedef tmat3x4<double, highp> highp_dmat3x4; 592 593 /// @} 594 595 /// @addtogroup core_precision 596 /// @{ 597 598 /// 4 columns of 2 components matrix of low precision floating-point numbers. 599 /// 600 /// @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> 601 /// @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> 602 typedef tmat4x2<double, lowp> lowp_dmat4x2; 603 604 /// 4 columns of 2 components matrix of medium precision floating-point numbers. 605 /// 606 /// @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> 607 /// @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> 608 typedef tmat4x2<double, mediump> mediump_dmat4x2; 609 610 /// 4 columns of 2 components matrix of high precision floating-point numbers. 611 /// 612 /// @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> 613 /// @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> 614 typedef tmat4x2<double, highp> highp_dmat4x2; 615 616 /// @} 617 618 /// @addtogroup core_precision 619 /// @{ 620 621 /// 4 columns of 3 components matrix of low precision floating-point numbers. 622 /// 623 /// @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> 624 /// @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> 625 typedef tmat4x3<double, lowp> lowp_dmat4x3; 626 627 /// 4 columns of 3 components matrix of medium precision floating-point numbers. 628 /// 629 /// @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> 630 /// @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> 631 typedef tmat4x3<double, mediump> mediump_dmat4x3; 632 633 /// 4 columns of 3 components matrix of high precision floating-point numbers. 634 /// 635 /// @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> 636 /// @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> 637 typedef tmat4x3<double, highp> highp_dmat4x3; 638 639 /// @} 640 641 /// @addtogroup core_precision 642 /// @{ 643 644 /// 4 columns of 4 components matrix of low precision floating-point numbers. 645 /// 646 /// @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> 647 /// @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> 648 typedef tmat4x4<double, lowp> lowp_dmat4; 649 650 /// 4 columns of 4 components matrix of medium precision floating-point numbers. 651 /// 652 /// @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> 653 /// @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> 654 typedef tmat4x4<double, mediump> mediump_dmat4; 655 656 /// 4 columns of 4 components matrix of high precision floating-point numbers. 657 /// 658 /// @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> 659 /// @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> 660 typedef tmat4x4<double, highp> highp_dmat4; 661 662 /// 4 columns of 4 components matrix of low precision floating-point numbers. 663 /// 664 /// @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> 665 /// @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> 666 typedef tmat4x4<double, lowp> lowp_dmat4x4; 667 668 /// 4 columns of 4 components matrix of medium precision floating-point numbers. 669 /// 670 /// @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> 671 /// @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> 672 typedef tmat4x4<double, mediump> mediump_dmat4x4; 673 674 /// 4 columns of 4 components matrix of high precision floating-point numbers. 675 /// 676 /// @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> 677 /// @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> 678 typedef tmat4x4<double, highp> highp_dmat4x4; 679 680 /// @} 681 682 #if(defined(GLM_PRECISION_LOWP_DOUBLE)) 683 typedef lowp_dmat2x2 dmat2x2; 684 typedef lowp_dmat2x3 dmat2x3; 685 typedef lowp_dmat2x4 dmat2x4; 686 typedef lowp_dmat3x2 dmat3x2; 687 typedef lowp_dmat3x3 dmat3x3; 688 typedef lowp_dmat3x4 dmat3x4; 689 typedef lowp_dmat4x2 dmat4x2; 690 typedef lowp_dmat4x3 dmat4x3; 691 typedef lowp_dmat4x4 dmat4x4; 692 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE)) 693 typedef mediump_dmat2x2 dmat2x2; 694 typedef mediump_dmat2x3 dmat2x3; 695 typedef mediump_dmat2x4 dmat2x4; 696 typedef mediump_dmat3x2 dmat3x2; 697 typedef mediump_dmat3x3 dmat3x3; 698 typedef mediump_dmat3x4 dmat3x4; 699 typedef mediump_dmat4x2 dmat4x2; 700 typedef mediump_dmat4x3 dmat4x3; 701 typedef mediump_dmat4x4 dmat4x4; 702 #else //defined(GLM_PRECISION_HIGHP_DOUBLE) 703 704 //! 2 * 2 matrix of double-precision floating-point numbers. 705 /// 706 /// @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> 707 typedef highp_dmat2x2 dmat2; 708 709 //! 3 * 3 matrix of double-precision floating-point numbers. 710 /// 711 /// @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> 712 typedef highp_dmat3x3 dmat3; 713 714 //! 4 * 4 matrix of double-precision floating-point numbers. 715 /// 716 /// @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> 717 typedef highp_dmat4x4 dmat4; 718 719 //! 2 * 2 matrix of double-precision floating-point numbers. 720 /// 721 /// @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> 722 typedef highp_dmat2x2 dmat2x2; 723 724 //! 2 * 3 matrix of double-precision floating-point numbers. 725 /// 726 /// @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> 727 typedef highp_dmat2x3 dmat2x3; 728 729 //! 2 * 4 matrix of double-precision floating-point numbers. 730 /// 731 /// @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> 732 typedef highp_dmat2x4 dmat2x4; 733 734 //! 3 * 2 matrix of double-precision floating-point numbers. 735 /// 736 /// @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> 737 typedef highp_dmat3x2 dmat3x2; 738 739 /// 3 * 3 matrix of double-precision floating-point numbers. 740 /// 741 /// @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> 742 typedef highp_dmat3x3 dmat3x3; 743 744 /// 3 * 4 matrix of double-precision floating-point numbers. 745 /// 746 /// @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> 747 typedef highp_dmat3x4 dmat3x4; 748 749 /// 4 * 2 matrix of double-precision floating-point numbers. 750 /// 751 /// @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> 752 typedef highp_dmat4x2 dmat4x2; 753 754 /// 4 * 3 matrix of double-precision floating-point numbers. 755 /// 756 /// @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> 757 typedef highp_dmat4x3 dmat4x3; 758 759 /// 4 * 4 matrix of double-precision floating-point numbers. 760 /// 761 /// @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> 762 typedef highp_dmat4x4 dmat4x4; 763 764 #endif//GLM_PRECISION 765 766 /// @} 767 }//namespace glm 768