diff --git a/glm/common.hpp b/glm/common.hpp index aafc6451..5ad29013 100644 --- a/glm/common.hpp +++ b/glm/common.hpp @@ -173,7 +173,7 @@ namespace glm /// @see GLSL min man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL genType min(genType x, genType y); + GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y); /// Returns y if y < x; otherwise, it returns x. /// @@ -184,7 +184,7 @@ namespace glm /// @see GLSL min man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec min(vec const& x, T y); + GLM_FUNC_DECL GLM_CONSTEXPR vec min(vec const& x, T y); /// Returns y if y < x; otherwise, it returns x. /// @@ -195,7 +195,7 @@ namespace glm /// @see GLSL min man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec min(vec const& x, vec const& y); + GLM_FUNC_DECL GLM_CONSTEXPR vec min(vec const& x, vec const& y); /// Returns y if x < y; otherwise, it returns x. /// @@ -204,7 +204,7 @@ namespace glm /// @see GLSL max man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL genType max(genType x, genType y); + GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y); /// Returns y if x < y; otherwise, it returns x. /// @@ -215,7 +215,7 @@ namespace glm /// @see GLSL max man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec max(vec const& x, T y); + GLM_FUNC_DECL GLM_CONSTEXPR vec max(vec const& x, T y); /// Returns y if x < y; otherwise, it returns x. /// @@ -226,7 +226,7 @@ namespace glm /// @see GLSL max man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec max(vec const& x, vec const& y); + GLM_FUNC_DECL GLM_CONSTEXPR vec max(vec const& x, vec const& y); /// Returns min(max(x, minVal), maxVal) for each component in x /// using the floating-point values minVal and maxVal. @@ -236,7 +236,7 @@ namespace glm /// @see GLSL clamp man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal); + GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal); /// Returns min(max(x, minVal), maxVal) for each component in x /// using the floating-point values minVal and maxVal. @@ -248,7 +248,7 @@ namespace glm /// @see GLSL clamp man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec clamp(vec const& x, T minVal, T maxVal); + GLM_FUNC_DECL GLM_CONSTEXPR vec clamp(vec const& x, T minVal, T maxVal); /// Returns min(max(x, minVal), maxVal) for each component in x /// using the floating-point values minVal and maxVal. @@ -260,7 +260,7 @@ namespace glm /// @see GLSL clamp man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template - GLM_FUNC_DECL vec clamp(vec const& x, vec const& minVal, vec const& maxVal); + GLM_FUNC_DECL GLM_CONSTEXPR vec clamp(vec const& x, vec const& minVal, vec const& maxVal); /// If genTypeU is a floating scalar or vector: /// Returns x * (1.0 - a) + y * a, i.e., the linear blend of diff --git a/glm/detail/func_common.inl b/glm/detail/func_common.inl index 938f59af..2816b86b 100644 --- a/glm/detail/func_common.inl +++ b/glm/detail/func_common.inl @@ -13,7 +13,7 @@ namespace glm { // min template - GLM_FUNC_QUALIFIER genType min(genType x, genType y) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType min(genType x, genType y) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'min' only accept floating-point or integer inputs"); return (y < x) ? y : x; @@ -21,7 +21,7 @@ namespace glm // max template - GLM_FUNC_QUALIFIER genType max(genType x, genType y) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType max(genType x, genType y) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'max' only accept floating-point or integer inputs"); @@ -472,49 +472,49 @@ namespace detail // min template - GLM_FUNC_QUALIFIER vec min(vec const& a, T b) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec min(vec const& a, T b) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'min' only accept floating-point or integer inputs"); return detail::compute_min_vector::value>::call(a, vec(b)); } template - GLM_FUNC_QUALIFIER vec min(vec const& a, vec const& b) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec min(vec const& a, vec const& b) { return detail::compute_min_vector::value>::call(a, b); } // max template - GLM_FUNC_QUALIFIER vec max(vec const& a, T b) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec max(vec const& a, T b) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'max' only accept floating-point or integer inputs"); return detail::compute_max_vector::value>::call(a, vec(b)); } template - GLM_FUNC_QUALIFIER vec max(vec const& a, vec const& b) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec max(vec const& a, vec const& b) { return detail::compute_max_vector::value>::call(a, b); } // clamp template - GLM_FUNC_QUALIFIER genType clamp(genType x, genType minVal, genType maxVal) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs"); return min(max(x, minVal), maxVal); } template - GLM_FUNC_QUALIFIER vec clamp(vec const& x, T minVal, T maxVal) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec clamp(vec const& x, T minVal, T maxVal) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs"); return detail::compute_clamp_vector::value>::call(x, vec(minVal), vec(maxVal)); } template - GLM_FUNC_QUALIFIER vec clamp(vec const& x, vec const& minVal, vec const& maxVal) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec clamp(vec const& x, vec const& minVal, vec const& maxVal) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer || GLM_CONFIG_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs"); return detail::compute_clamp_vector::value>::call(x, minVal, maxVal); diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl index d51da72e..fe5d1aa3 100644 --- a/glm/detail/type_mat2x2.inl +++ b/glm/detail/type_mat2x2.inl @@ -1,5 +1,3 @@ -/// @ref core - #include "../matrix.hpp" namespace glm diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl index 49c4f520..5fec17e5 100644 --- a/glm/detail/type_mat2x3.inl +++ b/glm/detail/type_mat2x3.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl index 9a404a43..b6d2b9dd 100644 --- a/glm/detail/type_mat2x4.inl +++ b/glm/detail/type_mat2x4.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl index 5fb864b9..b4b948b7 100644 --- a/glm/detail/type_mat3x2.inl +++ b/glm/detail/type_mat3x2.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index e7ef6a12..1ddaf99d 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -1,5 +1,3 @@ -/// @ref core - #include "../matrix.hpp" namespace glm diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl index 798847c0..6ee416cf 100644 --- a/glm/detail/type_mat3x4.inl +++ b/glm/detail/type_mat3x4.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl index 7f7687da..419c80c4 100644 --- a/glm/detail/type_mat4x2.inl +++ b/glm/detail/type_mat4x2.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl index cd871a05..702025dd 100644 --- a/glm/detail/type_mat4x3.inl +++ b/glm/detail/type_mat4x3.inl @@ -1,5 +1,3 @@ -/// @ref core - namespace glm { // -- Constructors -- diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 980da8f1..e38b87f7 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -1,5 +1,3 @@ -/// @ref core - #include "../matrix.hpp" namespace glm diff --git a/glm/ext/vector_common.hpp b/glm/ext/vector_common.hpp index 0c7d5631..208db26a 100644 --- a/glm/ext/vector_common.hpp +++ b/glm/ext/vector_common.hpp @@ -33,7 +33,7 @@ namespace glm /// /// @see ext_vector_common template - GLM_FUNC_DECL vec min(vec const& a, vec const& b, vec const& c); + GLM_FUNC_DECL GLM_CONSTEXPR vec min(vec const& a, vec const& b, vec const& c); /// Return the minimum component-wise values of 4 inputs /// @@ -43,7 +43,7 @@ namespace glm /// /// @see ext_vector_common template - GLM_FUNC_DECL vec min(vec const& a, vec const& b, vec const& c, vec const& d); + GLM_FUNC_DECL GLM_CONSTEXPR vec min(vec const& a, vec const& b, vec const& c, vec const& d); /// Return the maximum component-wise values of 3 inputs /// @@ -53,7 +53,7 @@ namespace glm /// /// @see ext_vector_common template - GLM_FUNC_DECL vec max(vec const& x, vec const& y, vec const& z); + GLM_FUNC_DECL GLM_CONSTEXPR vec max(vec const& x, vec const& y, vec const& z); /// Return the maximum component-wise values of 4 inputs /// @@ -63,7 +63,7 @@ namespace glm /// /// @see ext_vector_common template - GLM_FUNC_DECL vec max( vec const& x, vec const& y, vec const& z, vec const& w); + GLM_FUNC_DECL GLM_CONSTEXPR vec max( vec const& x, vec const& y, vec const& z, vec const& w); /// Returns y if y < x; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. /// diff --git a/glm/ext/vector_common.inl b/glm/ext/vector_common.inl index 43ae6d84..71f38093 100644 --- a/glm/ext/vector_common.inl +++ b/glm/ext/vector_common.inl @@ -3,28 +3,28 @@ namespace glm { template - GLM_FUNC_QUALIFIER vec min(vec const& x, vec const& y, vec const& z) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec min(vec const& x, vec const& y, vec const& z) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'min' only accept floating-point or integer inputs"); return glm::min(glm::min(x, y), z); } template - GLM_FUNC_QUALIFIER vec min(vec const& x, vec const& y, vec const& z, vec const& w) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec min(vec const& x, vec const& y, vec const& z, vec const& w) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'min' only accept floating-point or integer inputs"); return glm::min(glm::min(x, y), glm::min(z, w)); } template - GLM_FUNC_QUALIFIER vec max(vec const& x, vec const& y, vec const& z) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec max(vec const& x, vec const& y, vec const& z) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'max' only accept floating-point or integer inputs"); return glm::max(glm::max(x, y), z); } template - GLM_FUNC_QUALIFIER vec max(vec const& x, vec const& y, vec const& z, vec const& w) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec max(vec const& x, vec const& y, vec const& z, vec const& w) { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'max' only accept floating-point or integer inputs"); return glm::max(glm::max(x, y), glm::max(z, w)); diff --git a/glm/ext/vector_relational.inl b/glm/ext/vector_relational.inl index f38a97af..812cce38 100644 --- a/glm/ext/vector_relational.inl +++ b/glm/ext/vector_relational.inl @@ -1,6 +1,3 @@ -/// @ref ext_vector_relational - -// Dependency: #include "../vector_relational.hpp" #include "../common.hpp" #include "../detail/qualifier.hpp" diff --git a/manual.md b/manual.md index 2aafcd2f..36f20d98 100644 --- a/manual.md +++ b/manual.md @@ -30,10 +30,33 @@ + [2.15. GLM\_FORCE\_DEFAULT\_ALIGNED_GENTYPES: Force GLM to use aligned types by default](#section2_15) + [2.16. GLM_\FORCE\_PLATFORM\_UNKNOWN: Force GLM to no detect the build platform](#section2_16) + [3. Stable extensions](#section3) -+ [3.1. GLM_EXT_matrix_relational](#section3_1) -+ [3.2. GLM_EXT_scalar_relational](#section3_2) -+ [3.3. GLM_EXT_vec1](#section3_3) -+ [3.4. GLM_EXT_vector_relational](#section3_4) ++ [3.1. GLM_EXT_matrix_clip_space](#section3_1) ++ [3.2. GLM_EXT_matrix_doubleMxN(_precision)](#section3_2) ++ [3.3. GLM_EXT_matrix_floatMxN(_precision)](#section3_3) ++ [3.4. GLM_EXT_matrix_projection](#section3_4) ++ [3.5. GLM_EXT_matrix_relational](#section3_5) ++ [3.6. GLM_EXT_matrix_transform](#section3_6) ++ [3.7. GLM_EXT_quaternion_common](#section3_7) ++ [3.8. GLM_EXT_quaternion_double(_precision)](#section3_8) ++ [3.9. GLM_EXT_quaternion_exponential](#section3_9) ++ [3.10. GLM_EXT_quaternion_float(_precision)](#section3_10) ++ [3.11. GLM_EXT_quaternion_geometric](#section3_11) ++ [3.12. GLM_EXT_quaternion_relation](#section3_12) ++ [3.13. GLM_EXT_quaternion_transform](#section3_13) ++ [3.14. GLM_EXT_quaternion_trigonometric](#section3_14) ++ [3.15. GLM_EXT_scalar_common](#section3_15) ++ [3.16. GLM_EXT_scalar_constants](#section3_16) ++ [3.17. GLM_EXT_scalar_float_sized](#section3_17) ++ [3.18. GLM_EXT_scalar_int_sized](#section3_18) ++ [3.19. GLM_EXT_scalar_relational](#section3_19) ++ [3.20. GLM_EXT_scalar_uint_sized](#section3_20) ++ [3.21. GLM_EXT_vector_boolX(_precision)](#section3_21) ++ [3.22. GLM_EXT_vector_common](#section3_22) ++ [3.23. GLM_EXT_vector_doubleX(_precision)](#section3_23) ++ [3.24. GLM_EXT_vector_floatX(_precision)](#section3_24) ++ [3.25. GLM_EXT_vector_intX(_precision)](#section3_25) ++ [3.26. GLM_EXT_vector_relational](#section3_26) ++ [3.27. GLM_EXT_vector_uintX](#section3_27) + [4. Recommended extensions](#section4) + [4.1. GLM_GTC_bitfield](#section4_1) + [4.2. GLM_GTC_color_space](#section4_2)