0.9.9 API documenation
qualifier.hpp
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include "setup.hpp"
7 
8 namespace glm
9 {
11  enum qualifier
12  {
13  packed_highp,
14  packed_mediump,
15  packed_lowp,
16 
17 # if GLM_HAS_ALIGNED_TYPE
18  aligned_highp,
19  aligned_mediump,
20  aligned_lowp, // ///< Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance
21  aligned = aligned_highp,
22 # endif
23 
24  highp = packed_highp,
25  mediump = packed_mediump,
26  lowp = packed_lowp,
27  packed = packed_highp,
28 
29 # if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED)
30  defaultp = aligned_highp
31 # else
32  defaultp = highp
33 # endif
34  };
35 
36  template<length_t L, typename T, qualifier Q = defaultp> struct vec;
37  template<length_t C, length_t R, typename T, qualifier Q = defaultp> struct mat;
38 
39 namespace detail
40 {
41  template<glm::qualifier P>
42  struct is_aligned
43  {
44  static const bool value = false;
45  };
46 
47 # if GLM_HAS_ALIGNED_TYPE
48  template<>
49  struct is_aligned<glm::aligned_lowp>
50  {
51  static const bool value = true;
52  };
53 
54  template<>
55  struct is_aligned<glm::aligned_mediump>
56  {
57  static const bool value = true;
58  };
59 
60  template<>
61  struct is_aligned<glm::aligned_highp>
62  {
63  static const bool value = true;
64  };
65 # endif
66 }//namespace detail
67 }//namespace glm
Definition: common.hpp:20
Core features