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