1 /////////////////////////////////////////////////////////////////////////////////// 2 /// OpenGL Mathematics (glm.g-truc.net) 3 /// 4 /// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 5 /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 /// of this software and associated documentation files (the "Software"), to deal 7 /// in the Software without restriction, including without limitation the rights 8 /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 /// copies of the Software, and to permit persons to whom the Software is 10 /// furnished to do so, subject to the following conditions: 11 /// 12 /// The above copyright notice and this permission notice shall be included in 13 /// all copies or substantial portions of the Software. 14 /// 15 /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 /// THE SOFTWARE. 22 /// 23 /// @ref core 24 /// @file glm/fwd.hpp 25 /// @date 2013-03-30 / 2013-03-31 26 /// @author Christophe Riccio 27 /////////////////////////////////////////////////////////////////////////////////// 28 29 #ifndef GLM_FWD_INCLUDED 30 #define GLM_FWD_INCLUDED 31 32 #include "detail/type_int.hpp" 33 #include "detail/type_float.hpp" 34 #include "detail/type_vec.hpp" 35 #include "detail/type_mat.hpp" 36 37 ////////////////////// 38 // GLM_GTC_quaternion 39 namespace glm{ 40 namespace detail 41 { 42 template <typename T, precision P> struct tquat; 43 }//namespace detail 44 45 46 /// Quaternion of low single-precision floating-point numbers. 47 /// 48 /// @see gtc_quaternion 49 typedef detail::tquat<float, lowp> lowp_quat; 50 51 /// Quaternion of medium single-precision floating-point numbers. 52 /// 53 /// @see gtc_quaternion 54 typedef detail::tquat<float, mediump> mediump_quat; 55 56 /// Quaternion of high single-precision floating-point numbers. 57 /// 58 /// @see gtc_quaternion 59 typedef detail::tquat<float, highp> highp_quat; 60 61 #if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT)) 62 typedef highp_quat quat; 63 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT)) 64 typedef mediump_quat quat; 65 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT)) 66 typedef lowp_quat quat; 67 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT)) 68 /// Quaternion of default single-precision floating-point numbers. 69 typedef highp_quat quat; 70 #endif 71 72 /// Quaternion of low single-precision floating-point numbers. 73 /// 74 /// @see gtc_quaternion 75 typedef lowp_quat lowp_fquat; 76 77 /// Quaternion of medium single-precision floating-point numbers. 78 /// 79 /// @see gtc_quaternion 80 typedef mediump_quat mediump_fquat; 81 82 /// Quaternion of high single-precision floating-point numbers. 83 /// 84 /// @see gtc_quaternion 85 typedef highp_quat highp_fquat; 86 87 /// Quaternion of default single-precision floating-point numbers. 88 /// 89 /// @see gtc_quaternion 90 typedef quat fquat; 91 92 93 /// Quaternion of low double-precision floating-point numbers. 94 /// 95 /// @see gtc_quaternion 96 typedef detail::tquat<double, lowp> lowp_dquat; 97 98 /// Quaternion of medium double-precision floating-point numbers. 99 /// 100 /// @see gtc_quaternion 101 typedef detail::tquat<double, mediump> mediump_dquat; 102 103 /// Quaternion of high double-precision floating-point numbers. 104 /// 105 /// @see gtc_quaternion 106 typedef detail::tquat<double, highp> highp_dquat; 107 108 #if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE)) 109 typedef highp_dquat dquat; 110 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE)) 111 typedef mediump_dquat dquat; 112 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE)) 113 typedef lowp_dquat dquat; 114 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE)) 115 /// Quaternion of default double-precision floating-point numbers. 116 /// 117 /// @see gtc_quaternion 118 typedef highp_dquat dquat; 119 #endif 120 121 }//namespace glm 122 123 ////////////////////// 124 // GLM_GTC_precision 125 namespace glm 126 { 127 /// @addtogroup gtc_type_precision 128 /// @{ 129 130 /// Low precision 8 bit signed integer type. 131 /// @see gtc_type_precision 132 typedef detail::int8 lowp_int8; 133 134 /// Low precision 16 bit signed integer type. 135 /// @see gtc_type_precision 136 typedef detail::int16 lowp_int16; 137 138 /// Low precision 32 bit signed integer type. 139 /// @see gtc_type_precision 140 typedef detail::int32 lowp_int32; 141 142 /// Low precision 64 bit signed integer type. 143 /// @see gtc_type_precision 144 typedef detail::int64 lowp_int64; 145 146 /// Low precision 8 bit signed integer type. 147 /// @see gtc_type_precision 148 typedef detail::int8 lowp_int8_t; 149 150 /// Low precision 16 bit signed integer type. 151 /// @see gtc_type_precision 152 typedef detail::int16 lowp_int16_t; 153 154 /// Low precision 32 bit signed integer type. 155 /// @see gtc_type_precision 156 typedef detail::int32 lowp_int32_t; 157 158 /// Low precision 64 bit signed integer type. 159 /// @see gtc_type_precision 160 typedef detail::int64 lowp_int64_t; 161 162 /// Low precision 8 bit signed integer type. 163 /// @see gtc_type_precision 164 typedef detail::int8 lowp_i8; 165 166 /// Low precision 16 bit signed integer type. 167 /// @see gtc_type_precision 168 typedef detail::int16 lowp_i16; 169 170 /// Low precision 32 bit signed integer type. 171 /// @see gtc_type_precision 172 typedef detail::int32 lowp_i32; 173 174 /// Low precision 64 bit signed integer type. 175 /// @see gtc_type_precision 176 typedef detail::int64 lowp_i64; 177 178 /// Medium precision 8 bit signed integer type. 179 /// @see gtc_type_precision 180 typedef detail::int8 mediump_int8; 181 182 /// Medium precision 16 bit signed integer type. 183 /// @see gtc_type_precision 184 typedef detail::int16 mediump_int16; 185 186 /// Medium precision 32 bit signed integer type. 187 /// @see gtc_type_precision 188 typedef detail::int32 mediump_int32; 189 190 /// Medium precision 64 bit signed integer type. 191 /// @see gtc_type_precision 192 typedef detail::int64 mediump_int64; 193 194 /// Medium precision 8 bit signed integer type. 195 /// @see gtc_type_precision 196 typedef detail::int8 mediump_int8_t; 197 198 /// Medium precision 16 bit signed integer type. 199 /// @see gtc_type_precision 200 typedef detail::int16 mediump_int16_t; 201 202 /// Medium precision 32 bit signed integer type. 203 /// @see gtc_type_precision 204 typedef detail::int32 mediump_int32_t; 205 206 /// Medium precision 64 bit signed integer type. 207 /// @see gtc_type_precision 208 typedef detail::int64 mediump_int64_t; 209 210 /// Medium precision 8 bit signed integer type. 211 /// @see gtc_type_precision 212 typedef detail::int8 mediump_i8; 213 214 /// Medium precision 16 bit signed integer type. 215 /// @see gtc_type_precision 216 typedef detail::int16 mediump_i16; 217 218 /// Medium precision 32 bit signed integer type. 219 /// @see gtc_type_precision 220 typedef detail::int32 mediump_i32; 221 222 /// Medium precision 64 bit signed integer type. 223 /// @see gtc_type_precision 224 typedef detail::int64 mediump_i64; 225 226 /// High precision 8 bit signed integer type. 227 /// @see gtc_type_precision 228 typedef detail::int8 highp_int8; 229 230 /// High precision 16 bit signed integer type. 231 /// @see gtc_type_precision 232 typedef detail::int16 highp_int16; 233 234 /// High precision 32 bit signed integer type. 235 /// @see gtc_type_precision 236 typedef detail::int32 highp_int32; 237 238 /// High precision 64 bit signed integer type. 239 /// @see gtc_type_precision 240 typedef detail::int64 highp_int64; 241 242 /// High precision 8 bit signed integer type. 243 /// @see gtc_type_precision 244 typedef detail::int8 highp_int8_t; 245 246 /// High precision 16 bit signed integer type. 247 /// @see gtc_type_precision 248 typedef detail::int16 highp_int16_t; 249 250 /// 32 bit signed integer type. 251 /// @see gtc_type_precision 252 typedef detail::int32 highp_int32_t; 253 254 /// High precision 64 bit signed integer type. 255 /// @see gtc_type_precision 256 typedef detail::int64 highp_int64_t; 257 258 /// High precision 8 bit signed integer type. 259 /// @see gtc_type_precision 260 typedef detail::int8 highp_i8; 261 262 /// High precision 16 bit signed integer type. 263 /// @see gtc_type_precision 264 typedef detail::int16 highp_i16; 265 266 /// High precision 32 bit signed integer type. 267 /// @see gtc_type_precision 268 typedef detail::int32 highp_i32; 269 270 /// High precision 64 bit signed integer type. 271 /// @see gtc_type_precision 272 typedef detail::int64 highp_i64; 273 274 275 /// 8 bit signed integer type. 276 /// @see gtc_type_precision 277 typedef detail::int8 int8; 278 279 /// 16 bit signed integer type. 280 /// @see gtc_type_precision 281 typedef detail::int16 int16; 282 283 /// 32 bit signed integer type. 284 /// @see gtc_type_precision 285 typedef detail::int32 int32; 286 287 /// 64 bit signed integer type. 288 /// @see gtc_type_precision 289 typedef detail::int64 int64; 290 291 /// 8 bit signed integer type. 292 /// @see gtc_type_precision 293 typedef detail::int8 int8_t; 294 295 /// 16 bit signed integer type. 296 /// @see gtc_type_precision 297 typedef detail::int16 int16_t; 298 299 /// 32 bit signed integer type. 300 /// @see gtc_type_precision 301 typedef detail::int32 int32_t; 302 303 /// 64 bit signed integer type. 304 /// @see gtc_type_precision 305 typedef detail::int64 int64_t; 306 307 /// 8 bit signed integer type. 308 /// @see gtc_type_precision 309 typedef detail::int8 i8; 310 311 /// 16 bit signed integer type. 312 /// @see gtc_type_precision 313 typedef detail::int16 i16; 314 315 /// 32 bit signed integer type. 316 /// @see gtc_type_precision 317 typedef detail::int32 i32; 318 319 /// 64 bit signed integer type. 320 /// @see gtc_type_precision 321 typedef detail::int64 i64; 322 323 324 325 /// Low precision 8 bit signed integer scalar type. 326 /// @see gtc_type_precision 327 typedef detail::tvec1<i8, lowp> lowp_i8vec1; 328 329 /// Low precision 8 bit signed integer vector of 2 components type. 330 /// @see gtc_type_precision 331 typedef detail::tvec2<i8, lowp> lowp_i8vec2; 332 333 /// Low precision 8 bit signed integer vector of 3 components type. 334 /// @see gtc_type_precision 335 typedef detail::tvec3<i8, lowp> lowp_i8vec3; 336 337 /// Low precision 8 bit signed integer vector of 4 components type. 338 /// @see gtc_type_precision 339 typedef detail::tvec4<i8, lowp> lowp_i8vec4; 340 341 342 /// Medium precision 8 bit signed integer scalar type. 343 /// @see gtc_type_precision 344 typedef detail::tvec1<i8, mediump> mediump_i8vec1; 345 346 /// Medium precision 8 bit signed integer vector of 2 components type. 347 /// @see gtc_type_precision 348 typedef detail::tvec2<i8, mediump> mediump_i8vec2; 349 350 /// Medium precision 8 bit signed integer vector of 3 components type. 351 /// @see gtc_type_precision 352 typedef detail::tvec3<i8, mediump> mediump_i8vec3; 353 354 /// Medium precision 8 bit signed integer vector of 4 components type. 355 /// @see gtc_type_precision 356 typedef detail::tvec4<i8, mediump> mediump_i8vec4; 357 358 359 /// High precision 8 bit signed integer scalar type. 360 /// @see gtc_type_precision 361 typedef detail::tvec1<i8, highp> highp_i8vec1; 362 363 /// High precision 8 bit signed integer vector of 2 components type. 364 /// @see gtc_type_precision 365 typedef detail::tvec2<i8, highp> highp_i8vec2; 366 367 /// High precision 8 bit signed integer vector of 3 components type. 368 /// @see gtc_type_precision 369 typedef detail::tvec3<i8, highp> highp_i8vec3; 370 371 /// High precision 8 bit signed integer vector of 4 components type. 372 /// @see gtc_type_precision 373 typedef detail::tvec4<i8, highp> highp_i8vec4; 374 375 #if(defined(GLM_PRECISION_LOWP_INT)) 376 typedef lowp_i8vec1 i8vec1; 377 typedef lowp_i8vec2 i8vec2; 378 typedef lowp_i8vec3 i8vec3; 379 typedef lowp_i8vec4 i8vec4; 380 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 381 typedef mediump_i8vec1 i8vec1; 382 typedef mediump_i8vec2 i8vec2; 383 typedef mediump_i8vec3 i8vec3; 384 typedef mediump_i8vec4 i8vec4; 385 #else 386 /// Default precision 8 bit signed integer scalar type. 387 /// @see gtc_type_precision 388 typedef highp_i8vec1 i8vec1; 389 390 /// Default precision 8 bit signed integer vector of 2 components type. 391 /// @see gtc_type_precision 392 typedef highp_i8vec2 i8vec2; 393 394 /// Default precision 8 bit signed integer vector of 3 components type. 395 /// @see gtc_type_precision 396 typedef highp_i8vec3 i8vec3; 397 398 /// Default precision 8 bit signed integer vector of 4 components type. 399 /// @see gtc_type_precision 400 typedef highp_i8vec4 i8vec4; 401 #endif 402 403 404 /// Low precision 16 bit signed integer scalar type. 405 /// @see gtc_type_precision 406 typedef detail::tvec1<i16, lowp> lowp_i16vec1; 407 408 /// Low precision 16 bit signed integer vector of 2 components type. 409 /// @see gtc_type_precision 410 typedef detail::tvec2<i16, lowp> lowp_i16vec2; 411 412 /// Low precision 16 bit signed integer vector of 3 components type. 413 /// @see gtc_type_precision 414 typedef detail::tvec3<i16, lowp> lowp_i16vec3; 415 416 /// Low precision 16 bit signed integer vector of 4 components type. 417 /// @see gtc_type_precision 418 typedef detail::tvec4<i16, lowp> lowp_i16vec4; 419 420 421 /// Medium precision 16 bit signed integer scalar type. 422 /// @see gtc_type_precision 423 typedef detail::tvec1<i16, mediump> mediump_i16vec1; 424 425 /// Medium precision 16 bit signed integer vector of 2 components type. 426 /// @see gtc_type_precision 427 typedef detail::tvec2<i16, mediump> mediump_i16vec2; 428 429 /// Medium precision 16 bit signed integer vector of 3 components type. 430 /// @see gtc_type_precision 431 typedef detail::tvec3<i16, mediump> mediump_i16vec3; 432 433 /// Medium precision 16 bit signed integer vector of 4 components type. 434 /// @see gtc_type_precision 435 typedef detail::tvec4<i16, mediump> mediump_i16vec4; 436 437 438 /// High precision 16 bit signed integer scalar type. 439 /// @see gtc_type_precision 440 typedef detail::tvec1<i16, highp> highp_i16vec1; 441 442 /// High precision 16 bit signed integer vector of 2 components type. 443 /// @see gtc_type_precision 444 typedef detail::tvec2<i16, highp> highp_i16vec2; 445 446 /// High precision 16 bit signed integer vector of 3 components type. 447 /// @see gtc_type_precision 448 typedef detail::tvec3<i16, highp> highp_i16vec3; 449 450 /// High precision 16 bit signed integer vector of 4 components type. 451 /// @see gtc_type_precision 452 typedef detail::tvec4<i16, highp> highp_i16vec4; 453 454 455 #if(defined(GLM_PRECISION_LOWP_INT)) 456 typedef lowp_i16vec1 i16vec1; 457 typedef lowp_i16vec2 i16vec2; 458 typedef lowp_i16vec3 i16vec3; 459 typedef lowp_i16vec4 i16vec4; 460 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 461 typedef mediump_i16vec1 i16vec1; 462 typedef mediump_i16vec2 i16vec2; 463 typedef mediump_i16vec3 i16vec3; 464 typedef mediump_i16vec4 i16vec4; 465 #else 466 /// Default precision 16 bit signed integer scalar type. 467 /// @see gtc_type_precision 468 typedef highp_i16vec1 i16vec1; 469 470 /// Default precision 16 bit signed integer vector of 2 components type. 471 /// @see gtc_type_precision 472 typedef highp_i16vec2 i16vec2; 473 474 /// Default precision 16 bit signed integer vector of 3 components type. 475 /// @see gtc_type_precision 476 typedef highp_i16vec3 i16vec3; 477 478 /// Default precision 16 bit signed integer vector of 4 components type. 479 /// @see gtc_type_precision 480 typedef highp_i16vec4 i16vec4; 481 #endif 482 483 484 /// Low precision 32 bit signed integer scalar type. 485 /// @see gtc_type_precision 486 typedef detail::tvec1<i32, lowp> lowp_i32vec1; 487 488 /// Low precision 32 bit signed integer vector of 2 components type. 489 /// @see gtc_type_precision 490 typedef detail::tvec2<i32, lowp> lowp_i32vec2; 491 492 /// Low precision 32 bit signed integer vector of 3 components type. 493 /// @see gtc_type_precision 494 typedef detail::tvec3<i32, lowp> lowp_i32vec3; 495 496 /// Low precision 32 bit signed integer vector of 4 components type. 497 /// @see gtc_type_precision 498 typedef detail::tvec4<i32, lowp> lowp_i32vec4; 499 500 501 /// Medium precision 32 bit signed integer scalar type. 502 /// @see gtc_type_precision 503 typedef detail::tvec1<i32, mediump> mediump_i32vec1; 504 505 /// Medium precision 32 bit signed integer vector of 2 components type. 506 /// @see gtc_type_precision 507 typedef detail::tvec2<i32, mediump> mediump_i32vec2; 508 509 /// Medium precision 32 bit signed integer vector of 3 components type. 510 /// @see gtc_type_precision 511 typedef detail::tvec3<i32, mediump> mediump_i32vec3; 512 513 /// Medium precision 32 bit signed integer vector of 4 components type. 514 /// @see gtc_type_precision 515 typedef detail::tvec4<i32, mediump> mediump_i32vec4; 516 517 518 /// High precision 32 bit signed integer scalar type. 519 /// @see gtc_type_precision 520 typedef detail::tvec1<i32, highp> highp_i32vec1; 521 522 /// High precision 32 bit signed integer vector of 2 components type. 523 /// @see gtc_type_precision 524 typedef detail::tvec2<i32, highp> highp_i32vec2; 525 526 /// High precision 32 bit signed integer vector of 3 components type. 527 /// @see gtc_type_precision 528 typedef detail::tvec3<i32, highp> highp_i32vec3; 529 530 /// High precision 32 bit signed integer vector of 4 components type. 531 /// @see gtc_type_precision 532 typedef detail::tvec4<i32, highp> highp_i32vec4; 533 534 #if(defined(GLM_PRECISION_LOWP_INT)) 535 typedef lowp_i32vec1 i32vec1; 536 typedef lowp_i32vec2 i32vec2; 537 typedef lowp_i32vec3 i32vec3; 538 typedef lowp_i32vec4 i32vec4; 539 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 540 typedef mediump_i32vec1 i32vec1; 541 typedef mediump_i32vec2 i32vec2; 542 typedef mediump_i32vec3 i32vec3; 543 typedef mediump_i32vec4 i32vec4; 544 #else 545 /// Default precision 32 bit signed integer scalar type. 546 /// @see gtc_type_precision 547 typedef highp_i32vec1 i32vec1; 548 549 /// Default precision 32 bit signed integer vector of 2 components type. 550 /// @see gtc_type_precision 551 typedef highp_i32vec2 i32vec2; 552 553 /// Default precision 32 bit signed integer vector of 3 components type. 554 /// @see gtc_type_precision 555 typedef highp_i32vec3 i32vec3; 556 557 /// Default precision 32 bit signed integer vector of 4 components type. 558 /// @see gtc_type_precision 559 typedef highp_i32vec4 i32vec4; 560 #endif 561 562 563 /// Low precision 32 bit signed integer scalar type. 564 /// @see gtc_type_precision 565 typedef detail::tvec1<i32, lowp> lowp_i32vec1; 566 567 /// Low precision 32 bit signed integer vector of 2 components type. 568 /// @see gtc_type_precision 569 typedef detail::tvec2<i32, lowp> lowp_i32vec2; 570 571 /// Low precision 32 bit signed integer vector of 3 components type. 572 /// @see gtc_type_precision 573 typedef detail::tvec3<i32, lowp> lowp_i32vec3; 574 575 /// Low precision 32 bit signed integer vector of 4 components type. 576 /// @see gtc_type_precision 577 typedef detail::tvec4<i32, lowp> lowp_i32vec4; 578 579 580 /// Medium precision 32 bit signed integer scalar type. 581 /// @see gtc_type_precision 582 typedef detail::tvec1<i32, mediump> mediump_i32vec1; 583 584 /// Medium precision 32 bit signed integer vector of 2 components type. 585 /// @see gtc_type_precision 586 typedef detail::tvec2<i32, mediump> mediump_i32vec2; 587 588 /// Medium precision 32 bit signed integer vector of 3 components type. 589 /// @see gtc_type_precision 590 typedef detail::tvec3<i32, mediump> mediump_i32vec3; 591 592 /// Medium precision 32 bit signed integer vector of 4 components type. 593 /// @see gtc_type_precision 594 typedef detail::tvec4<i32, mediump> mediump_i32vec4; 595 596 597 /// High precision 32 bit signed integer scalar type. 598 /// @see gtc_type_precision 599 typedef detail::tvec1<i32, highp> highp_i32vec1; 600 601 /// High precision 32 bit signed integer vector of 2 components type. 602 /// @see gtc_type_precision 603 typedef detail::tvec2<i32, highp> highp_i32vec2; 604 605 /// High precision 32 bit signed integer vector of 3 components type. 606 /// @see gtc_type_precision 607 typedef detail::tvec3<i32, highp> highp_i32vec3; 608 609 /// High precision 32 bit signed integer vector of 4 components type. 610 /// @see gtc_type_precision 611 typedef detail::tvec4<i32, highp> highp_i32vec4; 612 613 #if(defined(GLM_PRECISION_LOWP_INT)) 614 typedef lowp_i32vec1 i32vec1; 615 typedef lowp_i32vec2 i32vec2; 616 typedef lowp_i32vec3 i32vec3; 617 typedef lowp_i32vec4 i32vec4; 618 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 619 typedef mediump_i32vec1 i32vec1; 620 typedef mediump_i32vec2 i32vec2; 621 typedef mediump_i32vec3 i32vec3; 622 typedef mediump_i32vec4 i32vec4; 623 #else 624 /// Default precision 32 bit signed integer scalar type. 625 /// @see gtc_type_precision 626 typedef highp_i32vec1 i32vec1; 627 628 /// Default precision 32 bit signed integer vector of 2 components type. 629 /// @see gtc_type_precision 630 typedef highp_i32vec2 i32vec2; 631 632 /// Default precision 32 bit signed integer vector of 3 components type. 633 /// @see gtc_type_precision 634 typedef highp_i32vec3 i32vec3; 635 636 /// Default precision 32 bit signed integer vector of 4 components type. 637 /// @see gtc_type_precision 638 typedef highp_i32vec4 i32vec4; 639 #endif 640 641 642 643 /// Low precision 64 bit signed integer scalar type. 644 /// @see gtc_type_precision 645 typedef detail::tvec1<i64, lowp> lowp_i64vec1; 646 647 /// Low precision 64 bit signed integer vector of 2 components type. 648 /// @see gtc_type_precision 649 typedef detail::tvec2<i64, lowp> lowp_i64vec2; 650 651 /// Low precision 64 bit signed integer vector of 3 components type. 652 /// @see gtc_type_precision 653 typedef detail::tvec3<i64, lowp> lowp_i64vec3; 654 655 /// Low precision 64 bit signed integer vector of 4 components type. 656 /// @see gtc_type_precision 657 typedef detail::tvec4<i64, lowp> lowp_i64vec4; 658 659 660 /// Medium precision 64 bit signed integer scalar type. 661 /// @see gtc_type_precision 662 typedef detail::tvec1<i64, mediump> mediump_i64vec1; 663 664 /// Medium precision 64 bit signed integer vector of 2 components type. 665 /// @see gtc_type_precision 666 typedef detail::tvec2<i64, mediump> mediump_i64vec2; 667 668 /// Medium precision 64 bit signed integer vector of 3 components type. 669 /// @see gtc_type_precision 670 typedef detail::tvec3<i64, mediump> mediump_i64vec3; 671 672 /// Medium precision 64 bit signed integer vector of 4 components type. 673 /// @see gtc_type_precision 674 typedef detail::tvec4<i64, mediump> mediump_i64vec4; 675 676 677 /// High precision 64 bit signed integer scalar type. 678 /// @see gtc_type_precision 679 typedef detail::tvec1<i64, highp> highp_i64vec1; 680 681 /// High precision 64 bit signed integer vector of 2 components type. 682 /// @see gtc_type_precision 683 typedef detail::tvec2<i64, highp> highp_i64vec2; 684 685 /// High precision 64 bit signed integer vector of 3 components type. 686 /// @see gtc_type_precision 687 typedef detail::tvec3<i64, highp> highp_i64vec3; 688 689 /// High precision 64 bit signed integer vector of 4 components type. 690 /// @see gtc_type_precision 691 typedef detail::tvec4<i64, highp> highp_i64vec4; 692 693 #if(defined(GLM_PRECISION_LOWP_INT)) 694 typedef lowp_i64vec1 i64vec1; 695 typedef lowp_i64vec2 i64vec2; 696 typedef lowp_i64vec3 i64vec3; 697 typedef lowp_i64vec4 i64vec4; 698 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 699 typedef mediump_i64vec1 i64vec1; 700 typedef mediump_i64vec2 i64vec2; 701 typedef mediump_i64vec3 i64vec3; 702 typedef mediump_i64vec4 i64vec4; 703 #else 704 /// Default precision 64 bit signed integer scalar type. 705 /// @see gtc_type_precision 706 typedef highp_i64vec1 i64vec1; 707 708 /// Default precision 64 bit signed integer vector of 2 components type. 709 /// @see gtc_type_precision 710 typedef highp_i64vec2 i64vec2; 711 712 /// Default precision 64 bit signed integer vector of 3 components type. 713 /// @see gtc_type_precision 714 typedef highp_i64vec3 i64vec3; 715 716 /// Default precision 64 bit signed integer vector of 4 components type. 717 /// @see gtc_type_precision 718 typedef highp_i64vec4 i64vec4; 719 #endif 720 721 722 ///////////////////////////// 723 // Unsigned int vector types 724 725 /// Low precision 8 bit unsigned integer type. 726 /// @see gtc_type_precision 727 typedef detail::uint8 lowp_uint8; 728 729 /// Low precision 16 bit unsigned integer type. 730 /// @see gtc_type_precision 731 typedef detail::uint16 lowp_uint16; 732 733 /// Low precision 32 bit unsigned integer type. 734 /// @see gtc_type_precision 735 typedef detail::uint32 lowp_uint32; 736 737 /// Low precision 64 bit unsigned integer type. 738 /// @see gtc_type_precision 739 typedef detail::uint64 lowp_uint64; 740 741 742 /// Low precision 8 bit unsigned integer type. 743 /// @see gtc_type_precision 744 typedef detail::uint8 lowp_uint8_t; 745 746 /// Low precision 16 bit unsigned integer type. 747 /// @see gtc_type_precision 748 typedef detail::uint16 lowp_uint16_t; 749 750 /// Low precision 32 bit unsigned integer type. 751 /// @see gtc_type_precision 752 typedef detail::uint32 lowp_uint32_t; 753 754 /// Low precision 64 bit unsigned integer type. 755 /// @see gtc_type_precision 756 typedef detail::uint64 lowp_uint64_t; 757 758 759 /// Low precision 8 bit unsigned integer type. 760 /// @see gtc_type_precision 761 typedef detail::uint8 lowp_u8; 762 763 /// Low precision 16 bit unsigned integer type. 764 /// @see gtc_type_precision 765 typedef detail::uint16 lowp_u16; 766 767 /// Low precision 32 bit unsigned integer type. 768 /// @see gtc_type_precision 769 typedef detail::uint32 lowp_u32; 770 771 /// Low precision 64 bit unsigned integer type. 772 /// @see gtc_type_precision 773 typedef detail::uint64 lowp_u64; 774 775 776 777 /// Medium precision 8 bit unsigned integer type. 778 /// @see gtc_type_precision 779 typedef detail::uint8 mediump_uint8; 780 781 /// Medium precision 16 bit unsigned integer type. 782 /// @see gtc_type_precision 783 typedef detail::uint16 mediump_uint16; 784 785 /// Medium precision 32 bit unsigned integer type. 786 /// @see gtc_type_precision 787 typedef detail::uint32 mediump_uint32; 788 789 /// Medium precision 64 bit unsigned integer type. 790 /// @see gtc_type_precision 791 typedef detail::uint64 mediump_uint64; 792 793 /// Medium precision 8 bit unsigned integer type. 794 /// @see gtc_type_precision 795 typedef detail::uint8 mediump_uint8_t; 796 797 /// Medium precision 16 bit unsigned integer type. 798 /// @see gtc_type_precision 799 typedef detail::uint16 mediump_uint16_t; 800 801 /// Medium precision 32 bit unsigned integer type. 802 /// @see gtc_type_precision 803 typedef detail::uint32 mediump_uint32_t; 804 805 /// Medium precision 64 bit unsigned integer type. 806 /// @see gtc_type_precision 807 typedef detail::uint64 mediump_uint64_t; 808 809 /// Medium precision 8 bit unsigned integer type. 810 /// @see gtc_type_precision 811 typedef detail::uint8 mediump_u8; 812 813 /// Medium precision 16 bit unsigned integer type. 814 /// @see gtc_type_precision 815 typedef detail::uint16 mediump_u16; 816 817 /// Medium precision 32 bit unsigned integer type. 818 /// @see gtc_type_precision 819 typedef detail::uint32 mediump_u32; 820 821 /// Medium precision 64 bit unsigned integer type. 822 /// @see gtc_type_precision 823 typedef detail::uint64 mediump_u64; 824 825 826 827 /// Medium precision 8 bit unsigned integer type. 828 /// @see gtc_type_precision 829 typedef detail::uint8 highp_uint8; 830 831 /// Medium precision 16 bit unsigned integer type. 832 /// @see gtc_type_precision 833 typedef detail::uint16 highp_uint16; 834 835 /// Medium precision 32 bit unsigned integer type. 836 /// @see gtc_type_precision 837 typedef detail::uint32 highp_uint32; 838 839 /// Medium precision 64 bit unsigned integer type. 840 /// @see gtc_type_precision 841 typedef detail::uint64 highp_uint64; 842 843 /// Medium precision 8 bit unsigned integer type. 844 /// @see gtc_type_precision 845 typedef detail::uint8 highp_uint8_t; 846 847 /// Medium precision 16 bit unsigned integer type. 848 /// @see gtc_type_precision 849 typedef detail::uint16 highp_uint16_t; 850 851 /// Medium precision 32 bit unsigned integer type. 852 /// @see gtc_type_precision 853 typedef detail::uint32 highp_uint32_t; 854 855 /// Medium precision 64 bit unsigned integer type. 856 /// @see gtc_type_precision 857 typedef detail::uint64 highp_uint64_t; 858 859 /// Medium precision 8 bit unsigned integer type. 860 /// @see gtc_type_precision 861 typedef detail::uint8 highp_u8; 862 863 /// Medium precision 16 bit unsigned integer type. 864 /// @see gtc_type_precision 865 typedef detail::uint16 highp_u16; 866 867 /// Medium precision 32 bit unsigned integer type. 868 /// @see gtc_type_precision 869 typedef detail::uint32 highp_u32; 870 871 /// Medium precision 64 bit unsigned integer type. 872 /// @see gtc_type_precision 873 typedef detail::uint64 highp_u64; 874 875 876 877 /// 8 bit unsigned integer type. 878 /// @see gtc_type_precision 879 typedef detail::uint8 uint8; 880 881 /// 16 bit unsigned integer type. 882 /// @see gtc_type_precision 883 typedef detail::uint16 uint16; 884 885 /// 32 bit unsigned integer type. 886 /// @see gtc_type_precision 887 typedef detail::uint32 uint32; 888 889 /// 64 bit unsigned integer type. 890 /// @see gtc_type_precision 891 typedef detail::uint64 uint64; 892 893 /// 8 bit unsigned integer type. 894 /// @see gtc_type_precision 895 typedef detail::uint8 uint8_t; 896 897 /// 16 bit unsigned integer type. 898 /// @see gtc_type_precision 899 typedef detail::uint16 uint16_t; 900 901 /// 32 bit unsigned integer type. 902 /// @see gtc_type_precision 903 typedef detail::uint32 uint32_t; 904 905 /// 64 bit unsigned integer type. 906 /// @see gtc_type_precision 907 typedef detail::uint64 uint64_t; 908 909 /// 8 bit unsigned integer type. 910 /// @see gtc_type_precision 911 typedef detail::uint8 u8; 912 913 /// 16 bit unsigned integer type. 914 /// @see gtc_type_precision 915 typedef detail::uint16 u16; 916 917 /// 32 bit unsigned integer type. 918 /// @see gtc_type_precision 919 typedef detail::uint32 u32; 920 921 /// 64 bit unsigned integer type. 922 /// @see gtc_type_precision 923 typedef detail::uint64 u64; 924 925 926 927 928 /// Low precision 8 bit unsigned integer scalar type. 929 /// @see gtc_type_precision 930 typedef detail::tvec1<u8, lowp> lowp_u8vec1; 931 932 /// Low precision 8 bit unsigned integer vector of 2 components type. 933 /// @see gtc_type_precision 934 typedef detail::tvec2<u8, lowp> lowp_u8vec2; 935 936 /// Low precision 8 bit unsigned integer vector of 3 components type. 937 /// @see gtc_type_precision 938 typedef detail::tvec3<u8, lowp> lowp_u8vec3; 939 940 /// Low precision 8 bit unsigned integer vector of 4 components type. 941 /// @see gtc_type_precision 942 typedef detail::tvec4<u8, lowp> lowp_u8vec4; 943 944 945 /// Medium precision 8 bit unsigned integer scalar type. 946 /// @see gtc_type_precision 947 typedef detail::tvec1<u8, mediump> mediump_u8vec1; 948 949 /// Medium precision 8 bit unsigned integer vector of 2 components type. 950 /// @see gtc_type_precision 951 typedef detail::tvec2<u8, mediump> mediump_u8vec2; 952 953 /// Medium precision 8 bit unsigned integer vector of 3 components type. 954 /// @see gtc_type_precision 955 typedef detail::tvec3<u8, mediump> mediump_u8vec3; 956 957 /// Medium precision 8 bit unsigned integer vector of 4 components type. 958 /// @see gtc_type_precision 959 typedef detail::tvec4<u8, mediump> mediump_u8vec4; 960 961 962 /// High precision 8 bit unsigned integer scalar type. 963 /// @see gtc_type_precision 964 typedef detail::tvec1<u8, highp> highp_u8vec1; 965 966 /// High precision 8 bit unsigned integer vector of 2 components type. 967 /// @see gtc_type_precision 968 typedef detail::tvec2<u8, highp> highp_u8vec2; 969 970 /// High precision 8 bit unsigned integer vector of 3 components type. 971 /// @see gtc_type_precision 972 typedef detail::tvec3<u8, highp> highp_u8vec3; 973 974 /// High precision 8 bit unsigned integer vector of 4 components type. 975 /// @see gtc_type_precision 976 typedef detail::tvec4<u8, highp> highp_u8vec4; 977 978 #if(defined(GLM_PRECISION_LOWP_INT)) 979 typedef lowp_u8vec1 u8vec1; 980 typedef lowp_u8vec2 u8vec2; 981 typedef lowp_u8vec3 u8vec3; 982 typedef lowp_u8vec4 u8vec4; 983 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 984 typedef mediump_u8vec1 u8vec1; 985 typedef mediump_u8vec2 u8vec2; 986 typedef mediump_u8vec3 u8vec3; 987 typedef mediump_u8vec4 u8vec4; 988 #else 989 /// Default precision 8 bit unsigned integer scalar type. 990 /// @see gtc_type_precision 991 typedef highp_u8vec1 u8vec1; 992 993 /// Default precision 8 bit unsigned integer vector of 2 components type. 994 /// @see gtc_type_precision 995 typedef highp_u8vec2 u8vec2; 996 997 /// Default precision 8 bit unsigned integer vector of 3 components type. 998 /// @see gtc_type_precision 999 typedef highp_u8vec3 u8vec3; 1000 1001 /// Default precision 8 bit unsigned integer vector of 4 components type. 1002 /// @see gtc_type_precision 1003 typedef highp_u8vec4 u8vec4; 1004 #endif 1005 1006 1007 /// Low precision 16 bit unsigned integer scalar type. 1008 /// @see gtc_type_precision 1009 typedef detail::tvec1<u16, lowp> lowp_u16vec1; 1010 1011 /// Low precision 16 bit unsigned integer vector of 2 components type. 1012 /// @see gtc_type_precision 1013 typedef detail::tvec2<u16, lowp> lowp_u16vec2; 1014 1015 /// Low precision 16 bit unsigned integer vector of 3 components type. 1016 /// @see gtc_type_precision 1017 typedef detail::tvec3<u16, lowp> lowp_u16vec3; 1018 1019 /// Low precision 16 bit unsigned integer vector of 4 components type. 1020 /// @see gtc_type_precision 1021 typedef detail::tvec4<u16, lowp> lowp_u16vec4; 1022 1023 1024 /// Medium precision 16 bit unsigned integer scalar type. 1025 /// @see gtc_type_precision 1026 typedef detail::tvec1<u16, mediump> mediump_u16vec1; 1027 1028 /// Medium precision 16 bit unsigned integer vector of 2 components type. 1029 /// @see gtc_type_precision 1030 typedef detail::tvec2<u16, mediump> mediump_u16vec2; 1031 1032 /// Medium precision 16 bit unsigned integer vector of 3 components type. 1033 /// @see gtc_type_precision 1034 typedef detail::tvec3<u16, mediump> mediump_u16vec3; 1035 1036 /// Medium precision 16 bit unsigned integer vector of 4 components type. 1037 /// @see gtc_type_precision 1038 typedef detail::tvec4<u16, mediump> mediump_u16vec4; 1039 1040 1041 /// High precision 16 bit unsigned integer scalar type. 1042 /// @see gtc_type_precision 1043 typedef detail::tvec1<u16, highp> highp_u16vec1; 1044 1045 /// High precision 16 bit unsigned integer vector of 2 components type. 1046 /// @see gtc_type_precision 1047 typedef detail::tvec2<u16, highp> highp_u16vec2; 1048 1049 /// High precision 16 bit unsigned integer vector of 3 components type. 1050 /// @see gtc_type_precision 1051 typedef detail::tvec3<u16, highp> highp_u16vec3; 1052 1053 /// High precision 16 bit unsigned integer vector of 4 components type. 1054 /// @see gtc_type_precision 1055 typedef detail::tvec4<u16, highp> highp_u16vec4; 1056 1057 1058 #if(defined(GLM_PRECISION_LOWP_INT)) 1059 typedef lowp_u16vec1 u16vec1; 1060 typedef lowp_u16vec2 u16vec2; 1061 typedef lowp_u16vec3 u16vec3; 1062 typedef lowp_u16vec4 u16vec4; 1063 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 1064 typedef mediump_u16vec1 u16vec1; 1065 typedef mediump_u16vec2 u16vec2; 1066 typedef mediump_u16vec3 u16vec3; 1067 typedef mediump_u16vec4 u16vec4; 1068 #else 1069 /// Default precision 16 bit unsigned integer scalar type. 1070 /// @see gtc_type_precision 1071 typedef highp_u16vec1 u16vec1; 1072 1073 /// Default precision 16 bit unsigned integer vector of 2 components type. 1074 /// @see gtc_type_precision 1075 typedef highp_u16vec2 u16vec2; 1076 1077 /// Default precision 16 bit unsigned integer vector of 3 components type. 1078 /// @see gtc_type_precision 1079 typedef highp_u16vec3 u16vec3; 1080 1081 /// Default precision 16 bit unsigned integer vector of 4 components type. 1082 /// @see gtc_type_precision 1083 typedef highp_u16vec4 u16vec4; 1084 #endif 1085 1086 1087 /// Low precision 32 bit unsigned integer scalar type. 1088 /// @see gtc_type_precision 1089 typedef detail::tvec1<u32, lowp> lowp_u32vec1; 1090 1091 /// Low precision 32 bit unsigned integer vector of 2 components type. 1092 /// @see gtc_type_precision 1093 typedef detail::tvec2<u32, lowp> lowp_u32vec2; 1094 1095 /// Low precision 32 bit unsigned integer vector of 3 components type. 1096 /// @see gtc_type_precision 1097 typedef detail::tvec3<u32, lowp> lowp_u32vec3; 1098 1099 /// Low precision 32 bit unsigned integer vector of 4 components type. 1100 /// @see gtc_type_precision 1101 typedef detail::tvec4<u32, lowp> lowp_u32vec4; 1102 1103 1104 /// Medium precision 32 bit unsigned integer scalar type. 1105 /// @see gtc_type_precision 1106 typedef detail::tvec1<u32, mediump> mediump_u32vec1; 1107 1108 /// Medium precision 32 bit unsigned integer vector of 2 components type. 1109 /// @see gtc_type_precision 1110 typedef detail::tvec2<u32, mediump> mediump_u32vec2; 1111 1112 /// Medium precision 32 bit unsigned integer vector of 3 components type. 1113 /// @see gtc_type_precision 1114 typedef detail::tvec3<u32, mediump> mediump_u32vec3; 1115 1116 /// Medium precision 32 bit unsigned integer vector of 4 components type. 1117 /// @see gtc_type_precision 1118 typedef detail::tvec4<u32, mediump> mediump_u32vec4; 1119 1120 1121 /// High precision 32 bit unsigned integer scalar type. 1122 /// @see gtc_type_precision 1123 typedef detail::tvec1<u32, highp> highp_u32vec1; 1124 1125 /// High precision 32 bit unsigned integer vector of 2 components type. 1126 /// @see gtc_type_precision 1127 typedef detail::tvec2<u32, highp> highp_u32vec2; 1128 1129 /// High precision 32 bit unsigned integer vector of 3 components type. 1130 /// @see gtc_type_precision 1131 typedef detail::tvec3<u32, highp> highp_u32vec3; 1132 1133 /// High precision 32 bit unsigned integer vector of 4 components type. 1134 /// @see gtc_type_precision 1135 typedef detail::tvec4<u32, highp> highp_u32vec4; 1136 1137 #if(defined(GLM_PRECISION_LOWP_INT)) 1138 typedef lowp_u32vec1 u32vec1; 1139 typedef lowp_u32vec2 u32vec2; 1140 typedef lowp_u32vec3 u32vec3; 1141 typedef lowp_u32vec4 u32vec4; 1142 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 1143 typedef mediump_u32vec1 u32vec1; 1144 typedef mediump_u32vec2 u32vec2; 1145 typedef mediump_u32vec3 u32vec3; 1146 typedef mediump_u32vec4 u32vec4; 1147 #else 1148 /// Default precision 32 bit unsigned integer scalar type. 1149 /// @see gtc_type_precision 1150 typedef highp_u32vec1 u32vec1; 1151 1152 /// Default precision 32 bit unsigned integer vector of 2 components type. 1153 /// @see gtc_type_precision 1154 typedef highp_u32vec2 u32vec2; 1155 1156 /// Default precision 32 bit unsigned integer vector of 3 components type. 1157 /// @see gtc_type_precision 1158 typedef highp_u32vec3 u32vec3; 1159 1160 /// Default precision 32 bit unsigned integer vector of 4 components type. 1161 /// @see gtc_type_precision 1162 typedef highp_u32vec4 u32vec4; 1163 #endif 1164 1165 1166 /// Low precision 32 bit unsigned integer scalar type. 1167 /// @see gtc_type_precision 1168 typedef detail::tvec1<u32, lowp> lowp_u32vec1; 1169 1170 /// Low precision 32 bit unsigned integer vector of 2 components type. 1171 /// @see gtc_type_precision 1172 typedef detail::tvec2<u32, lowp> lowp_u32vec2; 1173 1174 /// Low precision 32 bit unsigned integer vector of 3 components type. 1175 /// @see gtc_type_precision 1176 typedef detail::tvec3<u32, lowp> lowp_u32vec3; 1177 1178 /// Low precision 32 bit unsigned integer vector of 4 components type. 1179 /// @see gtc_type_precision 1180 typedef detail::tvec4<u32, lowp> lowp_u32vec4; 1181 1182 1183 /// Medium precision 32 bit unsigned integer scalar type. 1184 /// @see gtc_type_precision 1185 typedef detail::tvec1<u32, mediump> mediump_u32vec1; 1186 1187 /// Medium precision 32 bit unsigned integer vector of 2 components type. 1188 /// @see gtc_type_precision 1189 typedef detail::tvec2<u32, mediump> mediump_u32vec2; 1190 1191 /// Medium precision 32 bit unsigned integer vector of 3 components type. 1192 /// @see gtc_type_precision 1193 typedef detail::tvec3<u32, mediump> mediump_u32vec3; 1194 1195 /// Medium precision 32 bit unsigned integer vector of 4 components type. 1196 /// @see gtc_type_precision 1197 typedef detail::tvec4<u32, mediump> mediump_u32vec4; 1198 1199 1200 /// High precision 32 bit unsigned integer scalar type. 1201 /// @see gtc_type_precision 1202 typedef detail::tvec1<u32, highp> highp_u32vec1; 1203 1204 /// High precision 32 bit unsigned integer vector of 2 components type. 1205 /// @see gtc_type_precision 1206 typedef detail::tvec2<u32, highp> highp_u32vec2; 1207 1208 /// High precision 32 bit unsigned integer vector of 3 components type. 1209 /// @see gtc_type_precision 1210 typedef detail::tvec3<u32, highp> highp_u32vec3; 1211 1212 /// High precision 32 bit unsigned integer vector of 4 components type. 1213 /// @see gtc_type_precision 1214 typedef detail::tvec4<u32, highp> highp_u32vec4; 1215 1216 #if(defined(GLM_PRECISION_LOWP_INT)) 1217 typedef lowp_u32vec1 u32vec1; 1218 typedef lowp_u32vec2 u32vec2; 1219 typedef lowp_u32vec3 u32vec3; 1220 typedef lowp_u32vec4 u32vec4; 1221 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 1222 typedef mediump_u32vec1 u32vec1; 1223 typedef mediump_u32vec2 u32vec2; 1224 typedef mediump_u32vec3 u32vec3; 1225 typedef mediump_u32vec4 u32vec4; 1226 #else 1227 /// Default precision 32 bit unsigned integer scalar type. 1228 /// @see gtc_type_precision 1229 typedef highp_u32vec1 u32vec1; 1230 1231 /// Default precision 32 bit unsigned integer vector of 2 components type. 1232 /// @see gtc_type_precision 1233 typedef highp_u32vec2 u32vec2; 1234 1235 /// Default precision 32 bit unsigned integer vector of 3 components type. 1236 /// @see gtc_type_precision 1237 typedef highp_u32vec3 u32vec3; 1238 1239 /// Default precision 32 bit unsigned integer vector of 4 components type. 1240 /// @see gtc_type_precision 1241 typedef highp_u32vec4 u32vec4; 1242 #endif 1243 1244 1245 1246 /// Low precision 64 bit unsigned integer scalar type. 1247 /// @see gtc_type_precision 1248 typedef detail::tvec1<u64, lowp> lowp_u64vec1; 1249 1250 /// Low precision 64 bit unsigned integer vector of 2 components type. 1251 /// @see gtc_type_precision 1252 typedef detail::tvec2<u64, lowp> lowp_u64vec2; 1253 1254 /// Low precision 64 bit unsigned integer vector of 3 components type. 1255 /// @see gtc_type_precision 1256 typedef detail::tvec3<u64, lowp> lowp_u64vec3; 1257 1258 /// Low precision 64 bit unsigned integer vector of 4 components type. 1259 /// @see gtc_type_precision 1260 typedef detail::tvec4<u64, lowp> lowp_u64vec4; 1261 1262 1263 /// Medium precision 64 bit unsigned integer scalar type. 1264 /// @see gtc_type_precision 1265 typedef detail::tvec1<u64, mediump> mediump_u64vec1; 1266 1267 /// Medium precision 64 bit unsigned integer vector of 2 components type. 1268 /// @see gtc_type_precision 1269 typedef detail::tvec2<u64, mediump> mediump_u64vec2; 1270 1271 /// Medium precision 64 bit unsigned integer vector of 3 components type. 1272 /// @see gtc_type_precision 1273 typedef detail::tvec3<u64, mediump> mediump_u64vec3; 1274 1275 /// Medium precision 64 bit unsigned integer vector of 4 components type. 1276 /// @see gtc_type_precision 1277 typedef detail::tvec4<u64, mediump> mediump_u64vec4; 1278 1279 1280 /// High precision 64 bit unsigned integer scalar type. 1281 /// @see gtc_type_precision 1282 typedef detail::tvec1<u64, highp> highp_u64vec1; 1283 1284 /// High precision 64 bit unsigned integer vector of 2 components type. 1285 /// @see gtc_type_precision 1286 typedef detail::tvec2<u64, highp> highp_u64vec2; 1287 1288 /// High precision 64 bit unsigned integer vector of 3 components type. 1289 /// @see gtc_type_precision 1290 typedef detail::tvec3<u64, highp> highp_u64vec3; 1291 1292 /// High precision 64 bit unsigned integer vector of 4 components type. 1293 /// @see gtc_type_precision 1294 typedef detail::tvec4<u64, highp> highp_u64vec4; 1295 1296 #if(defined(GLM_PRECISION_LOWP_UINT)) 1297 typedef lowp_u64vec1 u64vec1; 1298 typedef lowp_u64vec2 u64vec2; 1299 typedef lowp_u64vec3 u64vec3; 1300 typedef lowp_u64vec4 u64vec4; 1301 #elif(defined(GLM_PRECISION_MEDIUMP_UINT)) 1302 typedef mediump_u64vec1 u64vec1; 1303 typedef mediump_u64vec2 u64vec2; 1304 typedef mediump_u64vec3 u64vec3; 1305 typedef mediump_u64vec4 u64vec4; 1306 #else 1307 /// Default precision 64 bit unsigned integer scalar type. 1308 /// @see gtc_type_precision 1309 typedef highp_u64vec1 u64vec1; 1310 1311 /// Default precision 64 bit unsigned integer vector of 2 components type. 1312 /// @see gtc_type_precision 1313 typedef highp_u64vec2 u64vec2; 1314 1315 /// Default precision 64 bit unsigned integer vector of 3 components type. 1316 /// @see gtc_type_precision 1317 typedef highp_u64vec3 u64vec3; 1318 1319 /// Default precision 64 bit unsigned integer vector of 4 components type. 1320 /// @see gtc_type_precision 1321 typedef highp_u64vec4 u64vec4; 1322 #endif 1323 1324 1325 ////////////////////// 1326 // Float vector types 1327 1328 /// Low 32 bit single-precision floating-point scalar. 1329 /// @see gtc_type_precision 1330 typedef detail::float32 lowp_float32; 1331 1332 /// Low 64 bit double-precision floating-point scalar. 1333 /// @see gtc_type_precision 1334 typedef detail::float64 lowp_float64; 1335 1336 /// Low 32 bit single-precision floating-point scalar. 1337 /// @see gtc_type_precision 1338 typedef detail::float32 lowp_float32_t; 1339 1340 /// Low 64 bit double-precision floating-point scalar. 1341 /// @see gtc_type_precision 1342 typedef detail::float64 lowp_float64_t; 1343 1344 /// Low 32 bit single-precision floating-point scalar. 1345 /// @see gtc_type_precision 1346 typedef float32 lowp_f32; 1347 1348 /// Low 64 bit double-precision floating-point scalar. 1349 /// @see gtc_type_precision 1350 typedef float64 lowp_f64; 1351 1352 /// Low 32 bit single-precision floating-point scalar. 1353 /// @see gtc_type_precision 1354 typedef detail::float32 lowp_float32; 1355 1356 /// Low 64 bit double-precision floating-point scalar. 1357 /// @see gtc_type_precision 1358 typedef detail::float64 lowp_float64; 1359 1360 /// Low 32 bit single-precision floating-point scalar. 1361 /// @see gtc_type_precision 1362 typedef detail::float32 lowp_float32_t; 1363 1364 /// Low 64 bit double-precision floating-point scalar. 1365 /// @see gtc_type_precision 1366 typedef detail::float64 lowp_float64_t; 1367 1368 /// Low 32 bit single-precision floating-point scalar. 1369 /// @see gtc_type_precision 1370 typedef float32 lowp_f32; 1371 1372 /// Low 64 bit double-precision floating-point scalar. 1373 /// @see gtc_type_precision 1374 typedef float64 lowp_f64; 1375 1376 1377 /// Low 32 bit single-precision floating-point scalar. 1378 /// @see gtc_type_precision 1379 typedef detail::float32 lowp_float32; 1380 1381 /// Low 64 bit double-precision floating-point scalar. 1382 /// @see gtc_type_precision 1383 typedef detail::float64 lowp_float64; 1384 1385 /// Low 32 bit single-precision floating-point scalar. 1386 /// @see gtc_type_precision 1387 typedef detail::float32 lowp_float32_t; 1388 1389 /// Low 64 bit double-precision floating-point scalar. 1390 /// @see gtc_type_precision 1391 typedef detail::float64 lowp_float64_t; 1392 1393 /// Low 32 bit single-precision floating-point scalar. 1394 /// @see gtc_type_precision 1395 typedef float32 lowp_f32; 1396 1397 /// Low 64 bit double-precision floating-point scalar. 1398 /// @see gtc_type_precision 1399 typedef float64 lowp_f64; 1400 1401 1402 /// Medium 32 bit single-precision floating-point scalar. 1403 /// @see gtc_type_precision 1404 typedef detail::float32 mediump_float32; 1405 1406 /// Medium 64 bit double-precision floating-point scalar. 1407 /// @see gtc_type_precision 1408 typedef detail::float64 mediump_float64; 1409 1410 /// Medium 32 bit single-precision floating-point scalar. 1411 /// @see gtc_type_precision 1412 typedef detail::float32 mediump_float32_t; 1413 1414 /// Medium 64 bit double-precision floating-point scalar. 1415 /// @see gtc_type_precision 1416 typedef detail::float64 mediump_float64_t; 1417 1418 /// Medium 32 bit single-precision floating-point scalar. 1419 /// @see gtc_type_precision 1420 typedef float32 mediump_f32; 1421 1422 /// Medium 64 bit double-precision floating-point scalar. 1423 /// @see gtc_type_precision 1424 typedef float64 mediump_f64; 1425 1426 1427 /// High 32 bit single-precision floating-point scalar. 1428 /// @see gtc_type_precision 1429 typedef detail::float32 highp_float32; 1430 1431 /// High 64 bit double-precision floating-point scalar. 1432 /// @see gtc_type_precision 1433 typedef detail::float64 highp_float64; 1434 1435 /// High 32 bit single-precision floating-point scalar. 1436 /// @see gtc_type_precision 1437 typedef detail::float32 highp_float32_t; 1438 1439 /// High 64 bit double-precision floating-point scalar. 1440 /// @see gtc_type_precision 1441 typedef detail::float64 highp_float64_t; 1442 1443 /// High 32 bit single-precision floating-point scalar. 1444 /// @see gtc_type_precision 1445 typedef float32 highp_f32; 1446 1447 /// High 64 bit double-precision floating-point scalar. 1448 /// @see gtc_type_precision 1449 typedef float64 highp_f64; 1450 1451 1452 #if(defined(GLM_PRECISION_LOWP_FLOAT)) 1453 /// Default 32 bit single-precision floating-point scalar. 1454 /// @see gtc_type_precision 1455 typedef lowp_float32 float32; 1456 1457 /// Default 64 bit double-precision floating-point scalar. 1458 /// @see gtc_type_precision 1459 typedef lowp_float64 float64; 1460 1461 /// Default 32 bit single-precision floating-point scalar. 1462 /// @see gtc_type_precision 1463 typedef lowp_float32_t float32_t; 1464 1465 /// Default 64 bit double-precision floating-point scalar. 1466 /// @see gtc_type_precision 1467 typedef lowp_float64_t float64_t; 1468 1469 /// Default 32 bit single-precision floating-point scalar. 1470 /// @see gtc_type_precision 1471 typedef lowp_f32 f32; 1472 1473 /// Default 64 bit double-precision floating-point scalar. 1474 /// @see gtc_type_precision 1475 typedef lowp_f64 f64; 1476 1477 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 1478 1479 /// Default 32 bit single-precision floating-point scalar. 1480 /// @see gtc_type_precision 1481 typedef mediump_float32 float32; 1482 1483 /// Default 64 bit double-precision floating-point scalar. 1484 /// @see gtc_type_precision 1485 typedef mediump_float64 float64; 1486 1487 /// Default 32 bit single-precision floating-point scalar. 1488 /// @see gtc_type_precision 1489 typedef mediump_float32 float32_t; 1490 1491 /// Default 64 bit double-precision floating-point scalar. 1492 /// @see gtc_type_precision 1493 typedef mediump_float64 float64_t; 1494 1495 /// Default 32 bit single-precision floating-point scalar. 1496 /// @see gtc_type_precision 1497 typedef mediump_float32 f32; 1498 1499 /// Default 64 bit double-precision floating-point scalar. 1500 /// @see gtc_type_precision 1501 typedef mediump_float64 f64; 1502 1503 #else//(defined(GLM_PRECISION_HIGHP_FLOAT)) 1504 1505 /// Default 32 bit single-precision floating-point scalar. 1506 /// @see gtc_type_precision 1507 typedef highp_float32 float32; 1508 1509 /// Default 64 bit double-precision floating-point scalar. 1510 /// @see gtc_type_precision 1511 typedef highp_float64 float64; 1512 1513 /// Default 32 bit single-precision floating-point scalar. 1514 /// @see gtc_type_precision 1515 typedef highp_float32_t float32_t; 1516 1517 /// Default 64 bit double-precision floating-point scalar. 1518 /// @see gtc_type_precision 1519 typedef highp_float64_t float64_t; 1520 1521 /// Default 32 bit single-precision floating-point scalar. 1522 /// @see gtc_type_precision 1523 typedef highp_float32_t f32; 1524 1525 /// Default 64 bit double-precision floating-point scalar. 1526 /// @see gtc_type_precision 1527 typedef highp_float64_t f64; 1528 #endif 1529 1530 1531 /// Low single-precision floating-point vector of 1 component. 1532 /// @see gtc_type_precision 1533 typedef detail::tvec1<float, lowp> lowp_vec1; 1534 1535 /// Low single-precision floating-point vector of 2 components. 1536 /// @see gtc_type_precision 1537 typedef detail::tvec2<float, lowp> lowp_vec2; 1538 1539 /// Low single-precision floating-point vector of 3 components. 1540 /// @see gtc_type_precision 1541 typedef detail::tvec3<float, lowp> lowp_vec3; 1542 1543 /// Low single-precision floating-point vector of 4 components. 1544 /// @see gtc_type_precision 1545 typedef detail::tvec4<float, lowp> lowp_vec4; 1546 1547 /// Low single-precision floating-point vector of 1 component. 1548 /// @see gtc_type_precision 1549 typedef detail::tvec1<float, lowp> lowp_fvec1; 1550 1551 /// Low single-precision floating-point vector of 2 components. 1552 /// @see gtc_type_precision 1553 typedef detail::tvec2<float, lowp> lowp_fvec2; 1554 1555 /// Low single-precision floating-point vector of 3 components. 1556 /// @see gtc_type_precision 1557 typedef detail::tvec3<float, lowp> lowp_fvec3; 1558 1559 /// Low single-precision floating-point vector of 4 components. 1560 /// @see gtc_type_precision 1561 typedef detail::tvec4<float, lowp> lowp_fvec4; 1562 1563 1564 1565 /// Medium single-precision floating-point vector of 1 component. 1566 /// @see gtc_type_precision 1567 typedef detail::tvec1<float, mediump> mediump_vec1; 1568 1569 /// Medium Single-precision floating-point vector of 2 components. 1570 /// @see gtc_type_precision 1571 typedef detail::tvec2<float, mediump> mediump_vec2; 1572 1573 /// Medium Single-precision floating-point vector of 3 components. 1574 /// @see gtc_type_precision 1575 typedef detail::tvec3<float, mediump> mediump_vec3; 1576 1577 /// Medium Single-precision floating-point vector of 4 components. 1578 /// @see gtc_type_precision 1579 typedef detail::tvec4<float, mediump> mediump_vec4; 1580 1581 /// Medium single-precision floating-point vector of 1 component. 1582 /// @see gtc_type_precision 1583 typedef detail::tvec1<float, mediump> mediump_fvec1; 1584 1585 /// Medium Single-precision floating-point vector of 2 components. 1586 /// @see gtc_type_precision 1587 typedef detail::tvec2<float, mediump> mediump_fvec2; 1588 1589 /// Medium Single-precision floating-point vector of 3 components. 1590 /// @see gtc_type_precision 1591 typedef detail::tvec3<float, mediump> mediump_fvec3; 1592 1593 /// Medium Single-precision floating-point vector of 4 components. 1594 /// @see gtc_type_precision 1595 typedef detail::tvec4<float, mediump> mediump_fvec4; 1596 1597 1598 1599 /// High single-precision floating-point vector of 1 component. 1600 /// @see gtc_type_precision 1601 typedef detail::tvec1<float, highp> highp_vec1; 1602 1603 /// High Single-precision floating-point vector of 2 components. 1604 /// @see gtc_type_precision 1605 typedef detail::tvec2<float, highp> highp_vec2; 1606 1607 /// High Single-precision floating-point vector of 3 components. 1608 /// @see gtc_type_precision 1609 typedef detail::tvec3<float, highp> highp_vec3; 1610 1611 /// High Single-precision floating-point vector of 4 components. 1612 /// @see gtc_type_precision 1613 typedef detail::tvec4<float, highp> highp_vec4; 1614 1615 /// High single-precision floating-point vector of 1 component. 1616 /// @see gtc_type_precision 1617 typedef detail::tvec1<float, highp> highp_fvec1; 1618 1619 /// High Single-precision floating-point vector of 2 components. 1620 /// @see gtc_type_precision 1621 typedef detail::tvec2<float, highp> highp_fvec2; 1622 1623 /// High Single-precision floating-point vector of 3 components. 1624 /// @see gtc_type_precision 1625 typedef detail::tvec3<float, highp> highp_fvec3; 1626 1627 /// High Single-precision floating-point vector of 4 components. 1628 /// @see gtc_type_precision 1629 typedef detail::tvec4<float, highp> highp_fvec4; 1630 1631 1632 /// Low single-precision floating-point vector of 1 component. 1633 /// @see gtc_type_precision 1634 typedef detail::tvec1<f32, lowp> lowp_f32vec1; 1635 1636 /// Low single-precision floating-point vector of 2 components. 1637 /// @see gtc_type_precision 1638 typedef detail::tvec2<f32, lowp> lowp_f32vec2; 1639 1640 /// Low single-precision floating-point vector of 3 components. 1641 /// @see gtc_type_precision 1642 typedef detail::tvec3<f32, lowp> lowp_f32vec3; 1643 1644 /// Low single-precision floating-point vector of 4 components. 1645 /// @see gtc_type_precision 1646 typedef detail::tvec4<f32, lowp> lowp_f32vec4; 1647 1648 /// Medium single-precision floating-point vector of 1 component. 1649 /// @see gtc_type_precision 1650 typedef detail::tvec1<f32, mediump> mediump_f32vec1; 1651 1652 /// Medium single-precision floating-point vector of 2 components. 1653 /// @see gtc_type_precision 1654 typedef detail::tvec2<f32, mediump> mediump_f32vec2; 1655 1656 /// Medium single-precision floating-point vector of 3 components. 1657 /// @see gtc_type_precision 1658 typedef detail::tvec3<f32, mediump> mediump_f32vec3; 1659 1660 /// Medium single-precision floating-point vector of 4 components. 1661 /// @see gtc_type_precision 1662 typedef detail::tvec4<f32, mediump> mediump_f32vec4; 1663 1664 /// High single-precision floating-point vector of 1 component. 1665 /// @see gtc_type_precision 1666 typedef detail::tvec1<f32, highp> highp_f32vec1; 1667 1668 /// High single-precision floating-point vector of 2 components. 1669 /// @see gtc_type_precision 1670 typedef detail::tvec2<f32, highp> highp_f32vec2; 1671 1672 /// High single-precision floating-point vector of 3 components. 1673 /// @see gtc_type_precision 1674 typedef detail::tvec3<f32, highp> highp_f32vec3; 1675 1676 /// High single-precision floating-point vector of 4 components. 1677 /// @see gtc_type_precision 1678 typedef detail::tvec4<f32, highp> highp_f32vec4; 1679 1680 1681 /// Low double-precision floating-point vector of 1 component. 1682 /// @see gtc_type_precision 1683 typedef detail::tvec1<f64, lowp> lowp_f64vec1; 1684 1685 /// Low double-precision floating-point vector of 2 components. 1686 /// @see gtc_type_precision 1687 typedef detail::tvec2<f64, lowp> lowp_f64vec2; 1688 1689 /// Low double-precision floating-point vector of 3 components. 1690 /// @see gtc_type_precision 1691 typedef detail::tvec3<f64, lowp> lowp_f64vec3; 1692 1693 /// Low double-precision floating-point vector of 4 components. 1694 /// @see gtc_type_precision 1695 typedef detail::tvec4<f64, lowp> lowp_f64vec4; 1696 1697 /// Medium double-precision floating-point vector of 1 component. 1698 /// @see gtc_type_precision 1699 typedef detail::tvec1<f64, mediump> mediump_f64vec1; 1700 1701 /// Medium double-precision floating-point vector of 2 components. 1702 /// @see gtc_type_precision 1703 typedef detail::tvec2<f64, mediump> mediump_f64vec2; 1704 1705 /// Medium double-precision floating-point vector of 3 components. 1706 /// @see gtc_type_precision 1707 typedef detail::tvec3<f64, mediump> mediump_f64vec3; 1708 1709 /// Medium double-precision floating-point vector of 4 components. 1710 /// @see gtc_type_precision 1711 typedef detail::tvec4<f64, mediump> mediump_f64vec4; 1712 1713 /// High double-precision floating-point vector of 1 component. 1714 /// @see gtc_type_precision 1715 typedef detail::tvec1<f64, highp> highp_f64vec1; 1716 1717 /// High double-precision floating-point vector of 2 components. 1718 /// @see gtc_type_precision 1719 typedef detail::tvec2<f64, highp> highp_f64vec2; 1720 1721 /// High double-precision floating-point vector of 3 components. 1722 /// @see gtc_type_precision 1723 typedef detail::tvec3<f64, highp> highp_f64vec3; 1724 1725 /// High double-precision floating-point vector of 4 components. 1726 /// @see gtc_type_precision 1727 typedef detail::tvec4<f64, highp> highp_f64vec4; 1728 1729 1730 ////////////////////// 1731 // Float matrix types 1732 1733 /// Low single-precision floating-point 1x1 matrix. 1734 /// @see gtc_type_precision 1735 //typedef lowp_f32 lowp_fmat1x1; 1736 1737 /// Low single-precision floating-point 2x2 matrix. 1738 /// @see gtc_type_precision 1739 typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2; 1740 1741 /// Low single-precision floating-point 2x3 matrix. 1742 /// @see gtc_type_precision 1743 typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3; 1744 1745 /// Low single-precision floating-point 2x4 matrix. 1746 /// @see gtc_type_precision 1747 typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4; 1748 1749 /// Low single-precision floating-point 3x2 matrix. 1750 /// @see gtc_type_precision 1751 typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2; 1752 1753 /// Low single-precision floating-point 3x3 matrix. 1754 /// @see gtc_type_precision 1755 typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3; 1756 1757 /// Low single-precision floating-point 3x4 matrix. 1758 /// @see gtc_type_precision 1759 typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4; 1760 1761 /// Low single-precision floating-point 4x2 matrix. 1762 /// @see gtc_type_precision 1763 typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2; 1764 1765 /// Low single-precision floating-point 4x3 matrix. 1766 /// @see gtc_type_precision 1767 typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3; 1768 1769 /// Low single-precision floating-point 4x4 matrix. 1770 /// @see gtc_type_precision 1771 typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4; 1772 1773 /// Low single-precision floating-point 1x1 matrix. 1774 /// @see gtc_type_precision 1775 //typedef lowp_fmat1x1 lowp_fmat1; 1776 1777 /// Low single-precision floating-point 2x2 matrix. 1778 /// @see gtc_type_precision 1779 typedef lowp_fmat2x2 lowp_fmat2; 1780 1781 /// Low single-precision floating-point 3x3 matrix. 1782 /// @see gtc_type_precision 1783 typedef lowp_fmat3x3 lowp_fmat3; 1784 1785 /// Low single-precision floating-point 4x4 matrix. 1786 /// @see gtc_type_precision 1787 typedef lowp_fmat4x4 lowp_fmat4; 1788 1789 1790 /// Medium single-precision floating-point 1x1 matrix. 1791 /// @see gtc_type_precision 1792 //typedef mediump_f32 mediump_fmat1x1; 1793 1794 /// Medium single-precision floating-point 2x2 matrix. 1795 /// @see gtc_type_precision 1796 typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2; 1797 1798 /// Medium single-precision floating-point 2x3 matrix. 1799 /// @see gtc_type_precision 1800 typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3; 1801 1802 /// Medium single-precision floating-point 2x4 matrix. 1803 /// @see gtc_type_precision 1804 typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4; 1805 1806 /// Medium single-precision floating-point 3x2 matrix. 1807 /// @see gtc_type_precision 1808 typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2; 1809 1810 /// Medium single-precision floating-point 3x3 matrix. 1811 /// @see gtc_type_precision 1812 typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3; 1813 1814 /// Medium single-precision floating-point 3x4 matrix. 1815 /// @see gtc_type_precision 1816 typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4; 1817 1818 /// Medium single-precision floating-point 4x2 matrix. 1819 /// @see gtc_type_precision 1820 typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2; 1821 1822 /// Medium single-precision floating-point 4x3 matrix. 1823 /// @see gtc_type_precision 1824 typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3; 1825 1826 /// Medium single-precision floating-point 4x4 matrix. 1827 /// @see gtc_type_precision 1828 typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4; 1829 1830 /// Medium single-precision floating-point 1x1 matrix. 1831 /// @see gtc_type_precision 1832 //typedef mediump_fmat1x1 mediump_fmat1; 1833 1834 /// Medium single-precision floating-point 2x2 matrix. 1835 /// @see gtc_type_precision 1836 typedef mediump_fmat2x2 mediump_fmat2; 1837 1838 /// Medium single-precision floating-point 3x3 matrix. 1839 /// @see gtc_type_precision 1840 typedef mediump_fmat3x3 mediump_fmat3; 1841 1842 /// Medium single-precision floating-point 4x4 matrix. 1843 /// @see gtc_type_precision 1844 typedef mediump_fmat4x4 mediump_fmat4; 1845 1846 1847 1848 /// High single-precision floating-point 1x1 matrix. 1849 /// @see gtc_type_precision 1850 //typedef highp_f32 highp_fmat1x1; 1851 1852 /// High single-precision floating-point 2x2 matrix. 1853 /// @see gtc_type_precision 1854 typedef detail::tmat2x2<f32, highp> highp_fmat2x2; 1855 1856 /// High single-precision floating-point 2x3 matrix. 1857 /// @see gtc_type_precision 1858 typedef detail::tmat2x3<f32, highp> highp_fmat2x3; 1859 1860 /// High single-precision floating-point 2x4 matrix. 1861 /// @see gtc_type_precision 1862 typedef detail::tmat2x4<f32, highp> highp_fmat2x4; 1863 1864 /// High single-precision floating-point 3x2 matrix. 1865 /// @see gtc_type_precision 1866 typedef detail::tmat3x2<f32, highp> highp_fmat3x2; 1867 1868 /// High single-precision floating-point 3x3 matrix. 1869 /// @see gtc_type_precision 1870 typedef detail::tmat3x3<f32, highp> highp_fmat3x3; 1871 1872 /// High single-precision floating-point 3x4 matrix. 1873 /// @see gtc_type_precision 1874 typedef detail::tmat3x4<f32, highp> highp_fmat3x4; 1875 1876 /// High single-precision floating-point 4x2 matrix. 1877 /// @see gtc_type_precision 1878 typedef detail::tmat4x2<f32, highp> highp_fmat4x2; 1879 1880 /// High single-precision floating-point 4x3 matrix. 1881 /// @see gtc_type_precision 1882 typedef detail::tmat4x3<f32, highp> highp_fmat4x3; 1883 1884 /// High single-precision floating-point 4x4 matrix. 1885 /// @see gtc_type_precision 1886 typedef detail::tmat4x4<f32, highp> highp_fmat4x4; 1887 1888 /// High single-precision floating-point 1x1 matrix. 1889 /// @see gtc_type_precision 1890 //typedef highp_fmat1x1 highp_fmat1; 1891 1892 /// High single-precision floating-point 2x2 matrix. 1893 /// @see gtc_type_precision 1894 typedef highp_fmat2x2 highp_fmat2; 1895 1896 /// High single-precision floating-point 3x3 matrix. 1897 /// @see gtc_type_precision 1898 typedef highp_fmat3x3 highp_fmat3; 1899 1900 /// High single-precision floating-point 4x4 matrix. 1901 /// @see gtc_type_precision 1902 typedef highp_fmat4x4 highp_fmat4; 1903 1904 1905 /// Low single-precision floating-point 1x1 matrix. 1906 /// @see gtc_type_precision 1907 //typedef f32 lowp_f32mat1x1; 1908 1909 /// Low single-precision floating-point 2x2 matrix. 1910 /// @see gtc_type_precision 1911 typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2; 1912 1913 /// Low single-precision floating-point 2x3 matrix. 1914 /// @see gtc_type_precision 1915 typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3; 1916 1917 /// Low single-precision floating-point 2x4 matrix. 1918 /// @see gtc_type_precision 1919 typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4; 1920 1921 /// Low single-precision floating-point 3x2 matrix. 1922 /// @see gtc_type_precision 1923 typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2; 1924 1925 /// Low single-precision floating-point 3x3 matrix. 1926 /// @see gtc_type_precision 1927 typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3; 1928 1929 /// Low single-precision floating-point 3x4 matrix. 1930 /// @see gtc_type_precision 1931 typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4; 1932 1933 /// Low single-precision floating-point 4x2 matrix. 1934 /// @see gtc_type_precision 1935 typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2; 1936 1937 /// Low single-precision floating-point 4x3 matrix. 1938 /// @see gtc_type_precision 1939 typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3; 1940 1941 /// Low single-precision floating-point 4x4 matrix. 1942 /// @see gtc_type_precision 1943 typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4; 1944 1945 /// Low single-precision floating-point 1x1 matrix. 1946 /// @see gtc_type_precision 1947 //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1; 1948 1949 /// Low single-precision floating-point 2x2 matrix. 1950 /// @see gtc_type_precision 1951 typedef lowp_f32mat2x2 lowp_f32mat2; 1952 1953 /// Low single-precision floating-point 3x3 matrix. 1954 /// @see gtc_type_precision 1955 typedef lowp_f32mat3x3 lowp_f32mat3; 1956 1957 /// Low single-precision floating-point 4x4 matrix. 1958 /// @see gtc_type_precision 1959 typedef lowp_f32mat4x4 lowp_f32mat4; 1960 1961 1962 1963 /// High single-precision floating-point 1x1 matrix. 1964 /// @see gtc_type_precision 1965 //typedef f32 mediump_f32mat1x1; 1966 1967 /// Low single-precision floating-point 2x2 matrix. 1968 /// @see gtc_type_precision 1969 typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2; 1970 1971 /// Medium single-precision floating-point 2x3 matrix. 1972 /// @see gtc_type_precision 1973 typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3; 1974 1975 /// Medium single-precision floating-point 2x4 matrix. 1976 /// @see gtc_type_precision 1977 typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4; 1978 1979 /// Medium single-precision floating-point 3x2 matrix. 1980 /// @see gtc_type_precision 1981 typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2; 1982 1983 /// Medium single-precision floating-point 3x3 matrix. 1984 /// @see gtc_type_precision 1985 typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3; 1986 1987 /// Medium single-precision floating-point 3x4 matrix. 1988 /// @see gtc_type_precision 1989 typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4; 1990 1991 /// Medium single-precision floating-point 4x2 matrix. 1992 /// @see gtc_type_precision 1993 typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2; 1994 1995 /// Medium single-precision floating-point 4x3 matrix. 1996 /// @see gtc_type_precision 1997 typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3; 1998 1999 /// Medium single-precision floating-point 4x4 matrix. 2000 /// @see gtc_type_precision 2001 typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4; 2002 2003 /// Medium single-precision floating-point 1x1 matrix. 2004 /// @see gtc_type_precision 2005 //typedef detail::tmat1x1<f32, mediump> f32mat1; 2006 2007 /// Medium single-precision floating-point 2x2 matrix. 2008 /// @see gtc_type_precision 2009 typedef mediump_f32mat2x2 mediump_f32mat2; 2010 2011 /// Medium single-precision floating-point 3x3 matrix. 2012 /// @see gtc_type_precision 2013 typedef mediump_f32mat3x3 mediump_f32mat3; 2014 2015 /// Medium single-precision floating-point 4x4 matrix. 2016 /// @see gtc_type_precision 2017 typedef mediump_f32mat4x4 mediump_f32mat4; 2018 2019 2020 2021 2022 /// High single-precision floating-point 1x1 matrix. 2023 /// @see gtc_type_precision 2024 //typedef f32 highp_f32mat1x1; 2025 2026 /// High single-precision floating-point 2x2 matrix. 2027 /// @see gtc_type_precision 2028 typedef detail::tmat2x2<f32, highp> highp_f32mat2x2; 2029 2030 /// High single-precision floating-point 2x3 matrix. 2031 /// @see gtc_type_precision 2032 typedef detail::tmat2x3<f32, highp> highp_f32mat2x3; 2033 2034 /// High single-precision floating-point 2x4 matrix. 2035 /// @see gtc_type_precision 2036 typedef detail::tmat2x4<f32, highp> highp_f32mat2x4; 2037 2038 /// High single-precision floating-point 3x2 matrix. 2039 /// @see gtc_type_precision 2040 typedef detail::tmat3x2<f32, highp> highp_f32mat3x2; 2041 2042 /// High single-precision floating-point 3x3 matrix. 2043 /// @see gtc_type_precision 2044 typedef detail::tmat3x3<f32, highp> highp_f32mat3x3; 2045 2046 /// High single-precision floating-point 3x4 matrix. 2047 /// @see gtc_type_precision 2048 typedef detail::tmat3x4<f32, highp> highp_f32mat3x4; 2049 2050 /// High single-precision floating-point 4x2 matrix. 2051 /// @see gtc_type_precision 2052 typedef detail::tmat4x2<f32, highp> highp_f32mat4x2; 2053 2054 /// High single-precision floating-point 4x3 matrix. 2055 /// @see gtc_type_precision 2056 typedef detail::tmat4x3<f32, highp> highp_f32mat4x3; 2057 2058 /// High single-precision floating-point 4x4 matrix. 2059 /// @see gtc_type_precision 2060 typedef detail::tmat4x4<f32, highp> highp_f32mat4x4; 2061 2062 /// High single-precision floating-point 1x1 matrix. 2063 /// @see gtc_type_precision 2064 //typedef detail::tmat1x1<f32, highp> f32mat1; 2065 2066 /// High single-precision floating-point 2x2 matrix. 2067 /// @see gtc_type_precision 2068 typedef highp_f32mat2x2 highp_f32mat2; 2069 2070 /// High single-precision floating-point 3x3 matrix. 2071 /// @see gtc_type_precision 2072 typedef highp_f32mat3x3 highp_f32mat3; 2073 2074 /// High single-precision floating-point 4x4 matrix. 2075 /// @see gtc_type_precision 2076 typedef highp_f32mat4x4 highp_f32mat4; 2077 2078 2079 2080 /// Low double-precision floating-point 1x1 matrix. 2081 /// @see gtc_type_precision 2082 //typedef f64 lowp_f64mat1x1; 2083 2084 /// Low double-precision floating-point 2x2 matrix. 2085 /// @see gtc_type_precision 2086 typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2; 2087 2088 /// Low double-precision floating-point 2x3 matrix. 2089 /// @see gtc_type_precision 2090 typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3; 2091 2092 /// Low double-precision floating-point 2x4 matrix. 2093 /// @see gtc_type_precision 2094 typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4; 2095 2096 /// Low double-precision floating-point 3x2 matrix. 2097 /// @see gtc_type_precision 2098 typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2; 2099 2100 /// Low double-precision floating-point 3x3 matrix. 2101 /// @see gtc_type_precision 2102 typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3; 2103 2104 /// Low double-precision floating-point 3x4 matrix. 2105 /// @see gtc_type_precision 2106 typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4; 2107 2108 /// Low double-precision floating-point 4x2 matrix. 2109 /// @see gtc_type_precision 2110 typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2; 2111 2112 /// Low double-precision floating-point 4x3 matrix. 2113 /// @see gtc_type_precision 2114 typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3; 2115 2116 /// Low double-precision floating-point 4x4 matrix. 2117 /// @see gtc_type_precision 2118 typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4; 2119 2120 /// Low double-precision floating-point 1x1 matrix. 2121 /// @see gtc_type_precision 2122 //typedef lowp_f64mat1x1 lowp_f64mat1; 2123 2124 /// Low double-precision floating-point 2x2 matrix. 2125 /// @see gtc_type_precision 2126 typedef lowp_f64mat2x2 lowp_f64mat2; 2127 2128 /// Low double-precision floating-point 3x3 matrix. 2129 /// @see gtc_type_precision 2130 typedef lowp_f64mat3x3 lowp_f64mat3; 2131 2132 /// Low double-precision floating-point 4x4 matrix. 2133 /// @see gtc_type_precision 2134 typedef lowp_f64mat4x4 lowp_f64mat4; 2135 2136 2137 2138 /// Medium double-precision floating-point 1x1 matrix. 2139 /// @see gtc_type_precision 2140 //typedef f64 Highp_f64mat1x1; 2141 2142 /// Medium double-precision floating-point 2x2 matrix. 2143 /// @see gtc_type_precision 2144 typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2; 2145 2146 /// Medium double-precision floating-point 2x3 matrix. 2147 /// @see gtc_type_precision 2148 typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3; 2149 2150 /// Medium double-precision floating-point 2x4 matrix. 2151 /// @see gtc_type_precision 2152 typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4; 2153 2154 /// Medium double-precision floating-point 3x2 matrix. 2155 /// @see gtc_type_precision 2156 typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2; 2157 2158 /// Medium double-precision floating-point 3x3 matrix. 2159 /// @see gtc_type_precision 2160 typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3; 2161 2162 /// Medium double-precision floating-point 3x4 matrix. 2163 /// @see gtc_type_precision 2164 typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4; 2165 2166 /// Medium double-precision floating-point 4x2 matrix. 2167 /// @see gtc_type_precision 2168 typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2; 2169 2170 /// Medium double-precision floating-point 4x3 matrix. 2171 /// @see gtc_type_precision 2172 typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3; 2173 2174 /// Medium double-precision floating-point 4x4 matrix. 2175 /// @see gtc_type_precision 2176 typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4; 2177 2178 /// Medium double-precision floating-point 1x1 matrix. 2179 /// @see gtc_type_precision 2180 //typedef mediump_f64mat1x1 mediump_f64mat1; 2181 2182 /// Medium double-precision floating-point 2x2 matrix. 2183 /// @see gtc_type_precision 2184 typedef mediump_f64mat2x2 mediump_f64mat2; 2185 2186 /// Medium double-precision floating-point 3x3 matrix. 2187 /// @see gtc_type_precision 2188 typedef mediump_f64mat3x3 mediump_f64mat3; 2189 2190 /// Medium double-precision floating-point 4x4 matrix. 2191 /// @see gtc_type_precision 2192 typedef mediump_f64mat4x4 mediump_f64mat4; 2193 2194 /// High double-precision floating-point 1x1 matrix. 2195 /// @see gtc_type_precision 2196 //typedef f64 highp_f64mat1x1; 2197 2198 /// High double-precision floating-point 2x2 matrix. 2199 /// @see gtc_type_precision 2200 typedef detail::tmat2x2<f64, highp> highp_f64mat2x2; 2201 2202 /// High double-precision floating-point 2x3 matrix. 2203 /// @see gtc_type_precision 2204 typedef detail::tmat2x3<f64, highp> highp_f64mat2x3; 2205 2206 /// High double-precision floating-point 2x4 matrix. 2207 /// @see gtc_type_precision 2208 typedef detail::tmat2x4<f64, highp> highp_f64mat2x4; 2209 2210 /// High double-precision floating-point 3x2 matrix. 2211 /// @see gtc_type_precision 2212 typedef detail::tmat3x2<f64, highp> highp_f64mat3x2; 2213 2214 /// High double-precision floating-point 3x3 matrix. 2215 /// @see gtc_type_precision 2216 typedef detail::tmat3x3<f64, highp> highp_f64mat3x3; 2217 2218 /// High double-precision floating-point 3x4 matrix. 2219 /// @see gtc_type_precision 2220 typedef detail::tmat3x4<f64, highp> highp_f64mat3x4; 2221 2222 /// High double-precision floating-point 4x2 matrix. 2223 /// @see gtc_type_precision 2224 typedef detail::tmat4x2<f64, highp> highp_f64mat4x2; 2225 2226 /// High double-precision floating-point 4x3 matrix. 2227 /// @see gtc_type_precision 2228 typedef detail::tmat4x3<f64, highp> highp_f64mat4x3; 2229 2230 /// High double-precision floating-point 4x4 matrix. 2231 /// @see gtc_type_precision 2232 typedef detail::tmat4x4<f64, highp> highp_f64mat4x4; 2233 2234 /// High double-precision floating-point 1x1 matrix. 2235 /// @see gtc_type_precision 2236 //typedef highp_f64mat1x1 highp_f64mat1; 2237 2238 /// High double-precision floating-point 2x2 matrix. 2239 /// @see gtc_type_precision 2240 typedef highp_f64mat2x2 highp_f64mat2; 2241 2242 /// High double-precision floating-point 3x3 matrix. 2243 /// @see gtc_type_precision 2244 typedef highp_f64mat3x3 highp_f64mat3; 2245 2246 /// High double-precision floating-point 4x4 matrix. 2247 /// @see gtc_type_precision 2248 typedef highp_f64mat4x4 highp_f64mat4; 2249 2250 ////////////////////////// 2251 // Quaternion types 2252 2253 /// Low single-precision floating-point quaternion. 2254 /// @see gtc_type_precision 2255 typedef detail::tquat<f32, lowp> lowp_f32quat; 2256 2257 /// Low double-precision floating-point quaternion. 2258 /// @see gtc_type_precision 2259 typedef detail::tquat<f64, lowp> lowp_f64quat; 2260 2261 /// Medium single-precision floating-point quaternion. 2262 /// @see gtc_type_precision 2263 typedef detail::tquat<f32, mediump> mediump_f32quat; 2264 2265 /// Medium double-precision floating-point quaternion. 2266 /// @see gtc_type_precision 2267 typedef detail::tquat<f64, mediump> mediump_f64quat; 2268 2269 /// High single-precision floating-point quaternion. 2270 /// @see gtc_type_precision 2271 typedef detail::tquat<f32, highp> highp_f32quat; 2272 2273 /// High double-precision floating-point quaternion. 2274 /// @see gtc_type_precision 2275 typedef detail::tquat<f64, highp> highp_f64quat; 2276 2277 2278 #if(defined(GLM_PRECISION_LOWP_FLOAT)) 2279 typedef lowp_f32vec1 fvec1; 2280 typedef lowp_f32vec2 fvec2; 2281 typedef lowp_f32vec3 fvec3; 2282 typedef lowp_f32vec4 fvec4; 2283 typedef lowp_f32mat2 fmat2; 2284 typedef lowp_f32mat3 fmat3; 2285 typedef lowp_f32mat4 fmat4; 2286 typedef lowp_f32mat2x2 fmat2x2; 2287 typedef lowp_f32mat3x2 fmat3x2; 2288 typedef lowp_f32mat4x2 fmat4x2; 2289 typedef lowp_f32mat2x3 fmat2x3; 2290 typedef lowp_f32mat3x3 fmat3x3; 2291 typedef lowp_f32mat4x3 fmat4x3; 2292 typedef lowp_f32mat2x4 fmat2x4; 2293 typedef lowp_f32mat3x4 fmat3x4; 2294 typedef lowp_f32mat4x4 fmat4x4; 2295 typedef lowp_f32quat fquat; 2296 2297 typedef lowp_f32vec1 f32vec1; 2298 typedef lowp_f32vec2 f32vec2; 2299 typedef lowp_f32vec3 f32vec3; 2300 typedef lowp_f32vec4 f32vec4; 2301 typedef lowp_f32mat2 f32mat2; 2302 typedef lowp_f32mat3 f32mat3; 2303 typedef lowp_f32mat4 f32mat4; 2304 typedef lowp_f32mat2x2 f32mat2x2; 2305 typedef lowp_f32mat3x2 f32mat3x2; 2306 typedef lowp_f32mat4x2 f32mat4x2; 2307 typedef lowp_f32mat2x3 f32mat2x3; 2308 typedef lowp_f32mat3x3 f32mat3x3; 2309 typedef lowp_f32mat4x3 f32mat4x3; 2310 typedef lowp_f32mat2x4 f32mat2x4; 2311 typedef lowp_f32mat3x4 f32mat3x4; 2312 typedef lowp_f32mat4x4 f32mat4x4; 2313 typedef lowp_f32quat f32quat; 2314 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 2315 typedef mediump_f32vec1 fvec1; 2316 typedef mediump_f32vec2 fvec2; 2317 typedef mediump_f32vec3 fvec3; 2318 typedef mediump_f32vec4 fvec4; 2319 typedef mediump_f32mat2 fmat2; 2320 typedef mediump_f32mat3 fmat3; 2321 typedef mediump_f32mat4 fmat4; 2322 typedef mediump_f32mat2x2 fmat2x2; 2323 typedef mediump_f32mat3x2 fmat3x2; 2324 typedef mediump_f32mat4x2 fmat4x2; 2325 typedef mediump_f32mat2x3 fmat2x3; 2326 typedef mediump_f32mat3x3 fmat3x3; 2327 typedef mediump_f32mat4x3 fmat4x3; 2328 typedef mediump_f32mat2x4 fmat2x4; 2329 typedef mediump_f32mat3x4 fmat3x4; 2330 typedef mediump_f32mat4x4 fmat4x4; 2331 typedef mediump_f32quat fquat; 2332 2333 typedef mediump_f32vec1 f32vec1; 2334 typedef mediump_f32vec2 f32vec2; 2335 typedef mediump_f32vec3 f32vec3; 2336 typedef mediump_f32vec4 f32vec4; 2337 typedef mediump_f32mat2 f32mat2; 2338 typedef mediump_f32mat3 f32mat3; 2339 typedef mediump_f32mat4 f32mat4; 2340 typedef mediump_f32mat2x2 f32mat2x2; 2341 typedef mediump_f32mat3x2 f32mat3x2; 2342 typedef mediump_f32mat4x2 f32mat4x2; 2343 typedef mediump_f32mat2x3 f32mat2x3; 2344 typedef mediump_f32mat3x3 f32mat3x3; 2345 typedef mediump_f32mat4x3 f32mat4x3; 2346 typedef mediump_f32mat2x4 f32mat2x4; 2347 typedef mediump_f32mat3x4 f32mat3x4; 2348 typedef mediump_f32mat4x4 f32mat4x4; 2349 typedef mediump_f32quat f32quat; 2350 #else//if(defined(GLM_PRECISION_HIGHP_FLOAT)) 2351 /// Default single-precision floating-point vector of 1 components. 2352 /// @see gtc_type_precision 2353 typedef highp_f32vec1 fvec1; 2354 2355 /// Default single-precision floating-point vector of 2 components. 2356 /// @see gtc_type_precision 2357 typedef highp_f32vec2 fvec2; 2358 2359 /// Default single-precision floating-point vector of 3 components. 2360 /// @see gtc_type_precision 2361 typedef highp_f32vec3 fvec3; 2362 2363 /// Default single-precision floating-point vector of 4 components. 2364 /// @see gtc_type_precision 2365 typedef highp_f32vec4 fvec4; 2366 2367 /// Default single-precision floating-point 2x2 matrix. 2368 /// @see gtc_type_precision 2369 typedef highp_f32mat2x2 fmat2x2; 2370 2371 /// Default single-precision floating-point 2x3 matrix. 2372 /// @see gtc_type_precision 2373 typedef highp_f32mat2x3 fmat2x3; 2374 2375 /// Default single-precision floating-point 2x4 matrix. 2376 /// @see gtc_type_precision 2377 typedef highp_f32mat2x4 fmat2x4; 2378 2379 /// Default single-precision floating-point 3x2 matrix. 2380 /// @see gtc_type_precision 2381 typedef highp_f32mat3x2 fmat3x2; 2382 2383 /// Default single-precision floating-point 3x3 matrix. 2384 /// @see gtc_type_precision 2385 typedef highp_f32mat3x3 fmat3x3; 2386 2387 /// Default single-precision floating-point 3x4 matrix. 2388 /// @see gtc_type_precision 2389 typedef highp_f32mat3x4 fmat3x4; 2390 2391 /// Default single-precision floating-point 4x2 matrix. 2392 /// @see gtc_type_precision 2393 typedef highp_f32mat4x2 fmat4x2; 2394 2395 /// Default single-precision floating-point 4x3 matrix. 2396 /// @see gtc_type_precision 2397 typedef highp_f32mat4x3 fmat4x3; 2398 2399 /// Default single-precision floating-point 4x4 matrix. 2400 /// @see gtc_type_precision 2401 typedef highp_f32mat4x4 fmat4x4; 2402 2403 /// Default single-precision floating-point 2x2 matrix. 2404 /// @see gtc_type_precision 2405 typedef fmat2x2 fmat2; 2406 2407 /// Default single-precision floating-point 3x3 matrix. 2408 /// @see gtc_type_precision 2409 typedef fmat3x3 fmat3; 2410 2411 /// Default single-precision floating-point 4x4 matrix. 2412 /// @see gtc_type_precision 2413 typedef fmat4x4 fmat4; 2414 2415 /// Default single-precision floating-point quaternion. 2416 /// @see gtc_type_precision 2417 typedef highp_fquat fquat; 2418 2419 2420 2421 /// Default single-precision floating-point vector of 1 components. 2422 /// @see gtc_type_precision 2423 typedef highp_f32vec1 f32vec1; 2424 2425 /// Default single-precision floating-point vector of 2 components. 2426 /// @see gtc_type_precision 2427 typedef highp_f32vec2 f32vec2; 2428 2429 /// Default single-precision floating-point vector of 3 components. 2430 /// @see gtc_type_precision 2431 typedef highp_f32vec3 f32vec3; 2432 2433 /// Default single-precision floating-point vector of 4 components. 2434 /// @see gtc_type_precision 2435 typedef highp_f32vec4 f32vec4; 2436 2437 /// Default single-precision floating-point 2x2 matrix. 2438 /// @see gtc_type_precision 2439 typedef highp_f32mat2x2 f32mat2x2; 2440 2441 /// Default single-precision floating-point 2x3 matrix. 2442 /// @see gtc_type_precision 2443 typedef highp_f32mat2x3 f32mat2x3; 2444 2445 /// Default single-precision floating-point 2x4 matrix. 2446 /// @see gtc_type_precision 2447 typedef highp_f32mat2x4 f32mat2x4; 2448 2449 /// Default single-precision floating-point 3x2 matrix. 2450 /// @see gtc_type_precision 2451 typedef highp_f32mat3x2 f32mat3x2; 2452 2453 /// Default single-precision floating-point 3x3 matrix. 2454 /// @see gtc_type_precision 2455 typedef highp_f32mat3x3 f32mat3x3; 2456 2457 /// Default single-precision floating-point 3x4 matrix. 2458 /// @see gtc_type_precision 2459 typedef highp_f32mat3x4 f32mat3x4; 2460 2461 /// Default single-precision floating-point 4x2 matrix. 2462 /// @see gtc_type_precision 2463 typedef highp_f32mat4x2 f32mat4x2; 2464 2465 /// Default single-precision floating-point 4x3 matrix. 2466 /// @see gtc_type_precision 2467 typedef highp_f32mat4x3 f32mat4x3; 2468 2469 /// Default single-precision floating-point 4x4 matrix. 2470 /// @see gtc_type_precision 2471 typedef highp_f32mat4x4 f32mat4x4; 2472 2473 /// Default single-precision floating-point 2x2 matrix. 2474 /// @see gtc_type_precision 2475 typedef f32mat2x2 f32mat2; 2476 2477 /// Default single-precision floating-point 3x3 matrix. 2478 /// @see gtc_type_precision 2479 typedef f32mat3x3 f32mat3; 2480 2481 /// Default single-precision floating-point 4x4 matrix. 2482 /// @see gtc_type_precision 2483 typedef f32mat4x4 f32mat4; 2484 2485 /// Default single-precision floating-point quaternion. 2486 /// @see gtc_type_precision 2487 typedef highp_f32quat f32quat; 2488 #endif 2489 2490 2491 #if(defined(GLM_PRECISION_LOWP_DOUBLE)) 2492 typedef lowp_f64vec1 f64vec1; 2493 typedef lowp_f64vec2 f64vec2; 2494 typedef lowp_f64vec3 f64vec3; 2495 typedef lowp_f64vec4 f64vec4; 2496 typedef lowp_f64mat2 f64mat2; 2497 typedef lowp_f64mat3 f64mat3; 2498 typedef lowp_f64mat4 f64mat4; 2499 typedef lowp_f64mat2x2 f64mat2x2; 2500 typedef lowp_f64mat3x2 f64mat3x2; 2501 typedef lowp_f64mat4x2 f64mat4x2; 2502 typedef lowp_f64mat2x3 f64mat2x3; 2503 typedef lowp_f64mat3x3 f64mat3x3; 2504 typedef lowp_f64mat4x3 f64mat4x3; 2505 typedef lowp_f64mat2x4 f64mat2x4; 2506 typedef lowp_f64mat3x4 f64mat3x4; 2507 typedef lowp_f64mat4x4 f64mat4x4; 2508 typedef lowp_f64quat f64quat; 2509 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE)) 2510 typedef mediump_f64vec1 f64vec1; 2511 typedef mediump_f64vec2 f64vec2; 2512 typedef mediump_f64vec3 f64vec3; 2513 typedef mediump_f64vec4 f64vec4; 2514 typedef mediump_f64mat2 f64mat2; 2515 typedef mediump_f64mat3 f64mat3; 2516 typedef mediump_f64mat4 f64mat4; 2517 typedef mediump_f64mat2x2 f64mat2x2; 2518 typedef mediump_f64mat3x2 f64mat3x2; 2519 typedef mediump_f64mat4x2 f64mat4x2; 2520 typedef mediump_f64mat2x3 f64mat2x3; 2521 typedef mediump_f64mat3x3 f64mat3x3; 2522 typedef mediump_f64mat4x3 f64mat4x3; 2523 typedef mediump_f64mat2x4 f64mat2x4; 2524 typedef mediump_f64mat3x4 f64mat3x4; 2525 typedef mediump_f64mat4x4 f64mat4x4; 2526 typedef mediump_f64quat f64quat; 2527 #else 2528 /// Default double-precision floating-point vector of 1 components. 2529 /// @see gtc_type_precision 2530 typedef highp_f64vec1 f64vec1; 2531 2532 /// Default double-precision floating-point vector of 2 components. 2533 /// @see gtc_type_precision 2534 typedef highp_f64vec2 f64vec2; 2535 2536 /// Default double-precision floating-point vector of 3 components. 2537 /// @see gtc_type_precision 2538 typedef highp_f64vec3 f64vec3; 2539 2540 /// Default double-precision floating-point vector of 4 components. 2541 /// @see gtc_type_precision 2542 typedef highp_f64vec4 f64vec4; 2543 2544 /// Default double-precision floating-point 2x2 matrix. 2545 /// @see gtc_type_precision 2546 typedef highp_f64mat2x2 f64mat2x2; 2547 2548 /// Default double-precision floating-point 2x3 matrix. 2549 /// @see gtc_type_precision 2550 typedef highp_f64mat2x3 f64mat2x3; 2551 2552 /// Default double-precision floating-point 2x4 matrix. 2553 /// @see gtc_type_precision 2554 typedef highp_f64mat2x4 f64mat2x4; 2555 2556 /// Default double-precision floating-point 3x2 matrix. 2557 /// @see gtc_type_precision 2558 typedef highp_f64mat3x2 f64mat3x2; 2559 2560 /// Default double-precision floating-point 3x3 matrix. 2561 /// @see gtc_type_precision 2562 typedef highp_f64mat3x3 f64mat3x3; 2563 2564 /// Default double-precision floating-point 3x4 matrix. 2565 /// @see gtc_type_precision 2566 typedef highp_f64mat3x4 f64mat3x4; 2567 2568 /// Default double-precision floating-point 4x2 matrix. 2569 /// @see gtc_type_precision 2570 typedef highp_f64mat4x2 f64mat4x2; 2571 2572 /// Default double-precision floating-point 4x3 matrix. 2573 /// @see gtc_type_precision 2574 typedef highp_f64mat4x3 f64mat4x3; 2575 2576 /// Default double-precision floating-point 4x4 matrix. 2577 /// @see gtc_type_precision 2578 typedef highp_f64mat4x4 f64mat4x4; 2579 2580 /// Default double-precision floating-point 2x2 matrix. 2581 /// @see gtc_type_precision 2582 typedef f64mat2x2 f64mat2; 2583 2584 /// Default double-precision floating-point 3x3 matrix. 2585 /// @see gtc_type_precision 2586 typedef f64mat3x3 f64mat3; 2587 2588 /// Default double-precision floating-point 4x4 matrix. 2589 /// @see gtc_type_precision 2590 typedef f64mat4x4 f64mat4; 2591 2592 /// Default double-precision floating-point quaternion. 2593 /// @see gtc_type_precision 2594 typedef highp_f64quat f64quat; 2595 #endif 2596 }//namespace glm 2597 2598 #endif//GLM_FWD_INCLUDED 2599