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