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  typedef qualifier precision;
37 
38  template<length_t L, typename T, qualifier Q = defaultp> struct vec;
39  template<length_t C, length_t R, typename T, qualifier Q = defaultp> struct mat;
40 
41 namespace detail
42 {
43  template<glm::qualifier P>
44  struct is_aligned
45  {
46  static const bool value = false;
47  };
48 
49 # if GLM_HAS_ALIGNED_TYPE
50  template<>
51  struct is_aligned<glm::aligned_lowp>
52  {
53  static const bool value = true;
54  };
55 
56  template<>
57  struct is_aligned<glm::aligned_mediump>
58  {
59  static const bool value = true;
60  };
61 
62  template<>
63  struct is_aligned<glm::aligned_highp>
64  {
65  static const bool value = true;
66  };
67 # endif
68 }//namespace detail
69 }//namespace glm
Definition: common.hpp:20
Core features