matrix_float4x3_precision.hpp 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /// @ref core
  2. /// @file glm/ext/matrix_float4x3_precision.hpp
  3. #pragma once
  4. #include "../detail/type_mat4x3.hpp"
  5. namespace glm
  6. {
  7. /// @addtogroup core_matrix_precision
  8. /// @{
  9. /// 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
  10. ///
  11. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
  12. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
  13. typedef mat<4, 3, float, lowp> lowp_mat4x3;
  14. /// 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
  15. ///
  16. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
  17. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
  18. typedef mat<4, 3, float, mediump> mediump_mat4x3;
  19. /// 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
  20. ///
  21. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
  22. /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
  23. typedef mat<4, 3, float, highp> highp_mat4x3;
  24. /// @}
  25. }//namespace glm
  26. #if GLM_CONFIG_CTOR_INIT == GLM_DISABLE
  27. static_assert(std::is_trivially_default_constructible<glm::lowp_mat4x3>::value);
  28. static_assert(std::is_trivially_default_constructible<glm::mediump_mat4x3>::value);
  29. static_assert(std::is_trivially_default_constructible<glm::highp_mat4x3>::value);
  30. #endif
  31. static_assert(std::is_trivially_copy_assignable<glm::lowp_mat4x3>::value);
  32. static_assert(std::is_trivially_copy_assignable<glm::mediump_mat4x3>::value);
  33. static_assert(std::is_trivially_copy_assignable<glm::highp_mat4x3>::value);
  34. static_assert(std::is_trivially_copyable<glm::lowp_mat4x3>::value);
  35. static_assert(std::is_trivially_copyable<glm::mediump_mat4x3>::value);
  36. static_assert(std::is_trivially_copyable<glm::highp_mat4x3>::value);
  37. static_assert(std::is_copy_constructible<glm::lowp_mat4x3>::value);
  38. static_assert(std::is_copy_constructible<glm::mediump_mat4x3>::value);
  39. static_assert(std::is_copy_constructible<glm::highp_mat4x3>::value);
  40. static_assert(glm::lowp_mat4x3::length() == 4);
  41. static_assert(glm::mediump_mat4x3::length() == 4);
  42. static_assert(glm::highp_mat4x3::length() == 4);