1 /// @ref core 2 /// @file glm/detail/precision.hpp 3 4 #pragma once 5 6 #include "setup.hpp" 7 8 namespace glm 9 { 10 enum precision 11 { 12 packed_highp, 13 packed_mediump, 14 packed_lowp, 15 16 # if GLM_HAS_ALIGNED_TYPE 17 aligned_highp, 18 aligned_mediump, 19 aligned_lowp, 20 aligned = aligned_highp, 21 # endif 22 23 highp = packed_highp, 24 mediump = packed_mediump, 25 lowp = packed_lowp, 26 packed = packed_highp, 27 28 # if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED) 29 defaultp = aligned_highp 30 # else 31 defaultp = highp 32 # endif 33 }; 34 35 namespace detail 36 { 37 template <glm::precision P> 38 struct is_aligned 39 { 40 static const bool value = false; 41 }; 42 43 # if GLM_HAS_ALIGNED_TYPE 44 template<> 45 struct is_aligned<glm::aligned_lowp> 46 { 47 static const bool value = true; 48 }; 49 50 template<> 51 struct is_aligned<glm::aligned_mediump> 52 { 53 static const bool value = true; 54 }; 55 56 template<> 57 struct is_aligned<glm::aligned_highp> 58 { 59 static const bool value = true; 60 }; 61 # endif 62 }//namespace detail 63 }//namespace glm 64