From 282473be2497c718f026180c6cbe54e006d561c5 Mon Sep 17 00:00:00 2001 From: Patrik Huber Date: Mon, 7 Nov 2016 21:41:43 +0000 Subject: [PATCH 01/21] Fixed missing conversion to T --- glm/gtc/matrix_transform.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glm/gtc/matrix_transform.inl b/glm/gtc/matrix_transform.inl index dac55a4a9..21669c7df 100644 --- a/glm/gtc/matrix_transform.inl +++ b/glm/gtc/matrix_transform.inl @@ -168,7 +168,7 @@ namespace glm T bottom, T top ) { - tmat4x4 Result(1); + tmat4x4 Result(T(1)); Result[0][0] = static_cast(2) / (right - left); Result[1][1] = static_cast(2) / (top - bottom); Result[2][2] = - static_cast(1); From 80390afd82792973601bb5a3a08afe09706b521e Mon Sep 17 00:00:00 2001 From: Patrik Huber Date: Tue, 8 Nov 2016 11:27:32 +0000 Subject: [PATCH 02/21] Changed T() to static_cast --- glm/gtc/matrix_transform.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glm/gtc/matrix_transform.inl b/glm/gtc/matrix_transform.inl index 21669c7df..b9ff418b4 100644 --- a/glm/gtc/matrix_transform.inl +++ b/glm/gtc/matrix_transform.inl @@ -168,7 +168,7 @@ namespace glm T bottom, T top ) { - tmat4x4 Result(T(1)); + tmat4x4 Result(static_cast(1)); Result[0][0] = static_cast(2) / (right - left); Result[1][1] = static_cast(2) / (top - bottom); Result[2][2] = - static_cast(1); From c87e9bed0da23bf043dc9c49d586518f21b02c1f Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 21:21:09 +0100 Subject: [PATCH 03/21] Updated revision number --- glm/detail/setup.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 610c7473d..174a41b97 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -36,7 +36,7 @@ #define GLM_VERSION_MAJOR 0 #define GLM_VERSION_MINOR 9 #define GLM_VERSION_PATCH 8 -#define GLM_VERSION_REVISION 2 +#define GLM_VERSION_REVISION 3 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_VERSION_DISPLAYED) # define GLM_MESSAGE_VERSION_DISPLAYED From 30db341ed882071333df5781dd455395a619ec40 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 21:23:17 +0100 Subject: [PATCH 04/21] - Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568 --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index aba6b1f62..95870e911 100644 --- a/readme.md +++ b/readme.md @@ -58,6 +58,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) ##### Fixes: - Fixed Android build error with C++11 compiler but C++98 STL #284 #564 - Fixed GTX_transform2 shear* functions #403 +- Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568 #### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01 ##### Improvements: From 6b0c3b48ccbbb2e09972a4f535cdbe30a6fd4e8d Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 21:39:09 +0100 Subject: [PATCH 05/21] Fixed bitCount with AVX on 32 bit builds #567 --- glm/detail/func_integer_simd.inl | 4 +++- readme.md | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/glm/detail/func_integer_simd.inl b/glm/detail/func_integer_simd.inl index c79e8618b..617586049 100644 --- a/glm/detail/func_integer_simd.inl +++ b/glm/detail/func_integer_simd.inl @@ -54,12 +54,14 @@ namespace detail return _mm_popcnt_u32(x); } +# if(GLM_MODEL == GLM_MODEL_64) template <> GLM_FUNC_QUALIFIER int bitCount(uint64 x) { return static_cast(_mm_popcnt_u64(x)); } -# endif +# endif//GLM_MODEL +# endif//GLM_ARCH }//namespace glm diff --git a/readme.md b/readme.md index 95870e911..fbe4c582c 100644 --- a/readme.md +++ b/readme.md @@ -59,6 +59,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Fixed Android build error with C++11 compiler but C++98 STL #284 #564 - Fixed GTX_transform2 shear* functions #403 - Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568 +- Fixed bitCount with AVX on 32 bit builds #567 #### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01 ##### Improvements: From 093f1e2117842484dd323d655f98c85b39b1489a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 22:06:55 +0100 Subject: [PATCH 06/21] Fixed Table of Contents --- manual.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/manual.md b/manual.md index d4f6d22d9..a2b72d832 100644 --- a/manual.md +++ b/manual.md @@ -71,13 +71,12 @@ + [8.3. Vector types](#section8_3) + [8.4. Lighting](#section8_4) + [9. References](#section9) -+ [9.1. GLM development](#section9_1) -+ [9.2. OpenGL specifications](#section9_2) -+ [9.3. External links](#section9_3) -+ [9.4. Projects using GLM](#section9_4) -+ [9.5. OpenGL tutorials using GLM](#section9_5) -+ [9.6. Equivalent for other languages](#section9_6) -+ [9.7. Alternatives to GLM](#section9_7) ++ [9.1. OpenGL specifications](#section9_1) ++ [9.2. External links](#section9_2) ++ [9.3. Projects using GLM](#section9_3) ++ [9.4. OpenGL tutorials using GLM](#section9_4) ++ [9.5. Equivalent for other languages](#section9_5) ++ [9.6. Alternatives to GLM](#section9_6) + [9.8. Acknowledgements](#section9_8) --- From b2a7b6b17d0ca3babda5533aa9ec7fa191ea9edf Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 22:17:34 +0100 Subject: [PATCH 07/21] Updated projects using GLM --- manual.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/manual.md b/manual.md index a2b72d832..f37e9bf44 100644 --- a/manual.md +++ b/manual.md @@ -1325,11 +1325,11 @@ A 3D planetary engine for seamless planet rendering from space down to the surfa ![](/doc/manual/references-outerra4.jpg) -***Falcor*** +[***Falcor***](https://github.com/NVIDIA/Falcor) Real-time rendering research framework by NVIDIA. -***Cinder*** +[***Cinder***](https://libcinder.org/) Cinder is a free and open source library for professional-quality creative coding in C++. @@ -1349,6 +1349,10 @@ Simple, easy-to-follow examples with GLSL source code, as well as a basic descri ![](/doc/manual/references-opencloth3.png) +[***LibreOffice***](https://www.libreoffice.org/) + +LibreOffice includes several applications that make it the most powerful Free and Open Source office suite on the market. + [***Are you using GLM in a project?***](mailto:glm@g-truc.net) ### 9.4. OpenGL tutorials using GLM From 66bbb69a7571180db0c0ef1383a6c2d75204eea2 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Nov 2016 22:24:44 +0100 Subject: [PATCH 08/21] Removed doxygen references to GTC_half_float which was removed in 0.9.4 --- glm/gtc/constants.hpp | 1 - glm/gtc/epsilon.hpp | 1 - glm/gtc/functions.hpp | 1 - glm/gtc/quaternion.hpp | 1 - glm/gtc/random.hpp | 1 - glm/gtc/type_precision.hpp | 1 - glm/gtc/type_ptr.hpp | 1 - glm/gtx/bit.hpp | 1 - glm/gtx/common.hpp | 1 - glm/gtx/compatibility.hpp | 1 - glm/gtx/dual_quaternion.hpp | 1 - glm/gtx/euler_angles.hpp | 1 - glm/gtx/string_cast.hpp | 1 - readme.md | 1 + 14 files changed, 1 insertion(+), 13 deletions(-) diff --git a/glm/gtc/constants.hpp b/glm/gtc/constants.hpp index d3358c761..059b6c5b2 100644 --- a/glm/gtc/constants.hpp +++ b/glm/gtc/constants.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/constants.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// /// @defgroup gtc_constants GLM_GTC_constants /// @ingroup gtc diff --git a/glm/gtc/epsilon.hpp b/glm/gtc/epsilon.hpp index 289f5b74a..d3668e916 100644 --- a/glm/gtc/epsilon.hpp +++ b/glm/gtc/epsilon.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/epsilon.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_quaternion (dependence) /// /// @defgroup gtc_epsilon GLM_GTC_epsilon diff --git a/glm/gtc/functions.hpp b/glm/gtc/functions.hpp index ab1590b49..c8b2ee3c7 100644 --- a/glm/gtc/functions.hpp +++ b/glm/gtc/functions.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/functions.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_quaternion (dependence) /// /// @defgroup gtc_functions GLM_GTC_functions diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 8af1c8bfe..7a59702ac 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/quaternion.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_constants (dependence) /// /// @defgroup gtc_quaternion GLM_GTC_quaternion diff --git a/glm/gtc/random.hpp b/glm/gtc/random.hpp index fa3956e52..664fa9e7f 100644 --- a/glm/gtc/random.hpp +++ b/glm/gtc/random.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/random.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtx_random (extended) /// /// @defgroup gtc_random GLM_GTC_random diff --git a/glm/gtc/type_precision.hpp b/glm/gtc/type_precision.hpp index a2dbb66a0..5e6f0b8e0 100644 --- a/glm/gtc/type_precision.hpp +++ b/glm/gtc/type_precision.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/type_precision.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_quaternion (dependence) /// /// @defgroup gtc_type_precision GLM_GTC_type_precision diff --git a/glm/gtc/type_ptr.hpp b/glm/gtc/type_ptr.hpp index 008665e2c..b2977da02 100644 --- a/glm/gtc/type_ptr.hpp +++ b/glm/gtc/type_ptr.hpp @@ -2,7 +2,6 @@ /// @file glm/gtc/type_ptr.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_quaternion (dependence) /// /// @defgroup gtc_type_ptr GLM_GTC_type_ptr diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp index 17378f35c..f64673ab1 100644 --- a/glm/gtx/bit.hpp +++ b/glm/gtx/bit.hpp @@ -2,7 +2,6 @@ /// @file glm/gtx/bit.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// /// @defgroup gtx_bit GLM_GTX_bit /// @ingroup gtx diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp index 6533a54e9..0e1d0d8d7 100644 --- a/glm/gtx/common.hpp +++ b/glm/gtx/common.hpp @@ -2,7 +2,6 @@ /// @file glm/gtx/common.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// /// @defgroup gtx_common GLM_GTX_common /// @ingroup gtx diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp index 9f4819aef..a31f7d44a 100644 --- a/glm/gtx/compatibility.hpp +++ b/glm/gtx/compatibility.hpp @@ -2,7 +2,6 @@ /// @file glm/gtx/compatibility.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// /// @defgroup gtx_compatibility GLM_GTX_compatibility /// @ingroup gtx diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index 4d7b61e38..432414c4d 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -3,7 +3,6 @@ /// @author Maksim Vorobiev (msomeone@gmail.com) /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtc_constants (dependence) /// @see gtc_quaternion (dependence) /// diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp index fdc4f26cc..3bf5481a1 100644 --- a/glm/gtx/euler_angles.hpp +++ b/glm/gtx/euler_angles.hpp @@ -2,7 +2,6 @@ /// @file glm/gtx/euler_angles.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// /// @defgroup gtx_euler_angles GLM_GTX_euler_angles /// @ingroup gtx diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp index d2b9fc6a7..7e96b56e5 100644 --- a/glm/gtx/string_cast.hpp +++ b/glm/gtx/string_cast.hpp @@ -2,7 +2,6 @@ /// @file glm/gtx/string_cast.hpp /// /// @see core (dependence) -/// @see gtc_half_float (dependence) /// @see gtx_integer (dependence) /// @see gtx_quaternion (dependence) /// diff --git a/readme.md b/readme.md index 9ed8c1402..9b4e0b397 100644 --- a/readme.md +++ b/readme.md @@ -61,6 +61,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Replaced the manual by a markdown version #458 #### Fixes: +- Removed doxygen references to GTC_half_float which was removed in 0.9.4 #### Deprecation: - Removed GLM_GTX_simd_vec4 extension From 877ea2ae0b03c1828869590eecb37c21a1785e45 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 10 Nov 2016 01:18:40 +0100 Subject: [PATCH 09/21] Updated project that use Python --- manual.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/manual.md b/manual.md index f37e9bf44..ae8947c83 100644 --- a/manual.md +++ b/manual.md @@ -74,7 +74,7 @@ + [9.1. OpenGL specifications](#section9_1) + [9.2. External links](#section9_2) + [9.3. Projects using GLM](#section9_3) -+ [9.4. OpenGL tutorials using GLM](#section9_4) ++ [9.4. Tutorials using GLM](#section9_4) + [9.5. Equivalent for other languages](#section9_5) + [9.6. Alternatives to GLM](#section9_6) + [9.8. Acknowledgements](#section9_8) @@ -1355,8 +1355,10 @@ LibreOffice includes several applications that make it the most powerful Free an [***Are you using GLM in a project?***](mailto:glm@g-truc.net) -### 9.4. OpenGL tutorials using GLM +### 9.4. Tutorials using GLM +* [Sascha Willems' Vulkan examples](https://github.com/SaschaWillems/Vulkan), Examples and demos for the new Vulkan API +* [VKTS](https://github.com/McNopper/Vulkan) Vulkan examples using VulKan ToolS (VKTS) * [*The OpenGL Samples Pack*](http://www.g-truc.net/project-0026.html#menu), samples that show how to set up all the different new features * [*Learning Modern 3D Graphics programming*](http://www.arcsynthesis.org/gltut/), a great OpenGL tutorial using GLM by Jason L. McKesson * [*Morten Nobel-Jørgensen’s*](http://blog.nobel-joergensen.com/2011/04/02/glm-brilliant-math-library-for-opengl/) review and use an [*OpenGL renderer*](https://github.com/mortennobel/RenderE) @@ -1377,10 +1379,11 @@ LibreOffice includes several applications that make it the most powerful Free an * [glm-js](https://github.com/humbletim/glm-js): JavaScript adaptation of the OpenGL Mathematics (GLM) C++ library interfaces * [Java OpenGL Mathematics (GLM)](https://github.com/java-graphics/glm) * [JGLM](https://github.com/jroyalty/jglm) - Java OpenGL Mathematics Library -* [SwiftGL Math Library](https://github.com/SwiftGL/Math/blob/master/Sources/glm.swift) +* [SwiftGL Math Library](https://github.com/SwiftGL/Math/blob/master/Sources/glm.swift) GLM for Swift * [glm-go](https://github.com/jbowtie/glm-go): Simple linear algebra library similar in spirit to GLM * [openll](https://github.com/Polkm/openll): Lua bindings for OpenGL, GLM, GLFW, OpenAL, SOIL and PhysicsFS * [glm-rs](https://github.com/dche/glm-rs): GLSL mathematics for Rust programming language +* [glmpython](https://github.com/Queatz/glmpython): GLM math library for Python ### 9.6. Alternatives to GLM From a4aa882cf8bbabe0803a3eb97254ad8adb516749 Mon Sep 17 00:00:00 2001 From: Zbigniew Mandziejewicz Date: Sat, 12 Nov 2016 18:30:17 +0800 Subject: [PATCH 10/21] Fix name for CMake version file --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdb9f4345..f2dc8bc9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,7 +164,7 @@ set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -188,7 +188,7 @@ configure_package_config_file( install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" DESTINATION ${GLM_INSTALL_CONFIGDIR} ) From 6f688414e4fe4c7d33a6e99ff682e229a1888403 Mon Sep 17 00:00:00 2001 From: Zbigniew Mandziejewicz Date: Sat, 12 Nov 2016 18:30:17 +0800 Subject: [PATCH 11/21] Fix name for CMake version file --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 712c463f6..0a5204ff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,7 +164,7 @@ set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -188,7 +188,7 @@ configure_package_config_file( install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" DESTINATION ${GLM_INSTALL_CONFIGDIR} ) From ab998f444730d712e616a19257c5b223d05e1c69 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 11:46:21 +0100 Subject: [PATCH 12/21] - Fixed CMake find_package with version specification #572 #573 --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index fbe4c582c..c9fb2ab6c 100644 --- a/readme.md +++ b/readme.md @@ -60,6 +60,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Fixed GTX_transform2 shear* functions #403 - Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568 - Fixed bitCount with AVX on 32 bit builds #567 +- Fixed CMake find_package with version specification #572 #573 #### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01 ##### Improvements: From b23d60501f45f20c09e2e213ebcae438f8de200d Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 11:53:13 +0100 Subject: [PATCH 13/21] Prepare GLM 0.9.8.3 release --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index c9fb2ab6c..9c07e3590 100644 --- a/readme.md +++ b/readme.md @@ -51,7 +51,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) ## Release notes -#### [GLM 0.9.8.3](https://github.com/g-truc/glm/tree/0.9.8) - 2016-XX-XX +#### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12 ##### Improvements: - Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378 From 6a1e2ec5d5e79e6d869c947cbdbcbb297bdf9d32 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 12:07:21 +0100 Subject: [PATCH 14/21] Updated version --- glm/detail/setup.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 174a41b97..9d002e36c 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -40,7 +40,7 @@ #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_VERSION_DISPLAYED) # define GLM_MESSAGE_VERSION_DISPLAYED -# pragma message ("GLM: version 0.9.8.2") +# pragma message ("GLM: version 0.9.8.3") #endif//GLM_MESSAGES // Report compiler detection From 79f6d7082c1646ccdf4d645a39653654e91f38d6 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 12:11:43 +0100 Subject: [PATCH 15/21] Bump revision number for next 0.9.8 release --- glm/detail/setup.hpp | 4 ++-- readme.md | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 9d002e36c..d4bc89a2a 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -36,11 +36,11 @@ #define GLM_VERSION_MAJOR 0 #define GLM_VERSION_MINOR 9 #define GLM_VERSION_PATCH 8 -#define GLM_VERSION_REVISION 3 +#define GLM_VERSION_REVISION 4 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_VERSION_DISPLAYED) # define GLM_MESSAGE_VERSION_DISPLAYED -# pragma message ("GLM: version 0.9.8.3") +# pragma message ("GLM: version 0.9.8.4") #endif//GLM_MESSAGES // Report compiler detection diff --git a/readme.md b/readme.md index 9c07e3590..2426ede1b 100644 --- a/readme.md +++ b/readme.md @@ -51,6 +51,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) ## Release notes +#### [GLM 0.9.8.4](https://github.com/g-truc/glm/tree/0.9.8) - 201X-XX-XX + + #### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12 ##### Improvements: - Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378 From 26b6c3d34d4a45146ee23d65754191dfc5ddcfba Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 13:42:06 +0100 Subject: [PATCH 16/21] Fixed merge --- readme.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/readme.md b/readme.md index bf3192a22..58645c5f6 100644 --- a/readme.md +++ b/readme.md @@ -50,7 +50,6 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) ## Release notes -<<<<<<< HEAD ### [GLM 0.9.9.0](https://github.com/g-truc/glm/releases/latest) - 2017-XX-XX #### Features: - Added RGBM encoding in GTC_packing #420 @@ -74,15 +73,11 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead --- -### [GLM 0.9.8.3](https://github.com/g-truc/glm/tree/0.9.8) - 2016-XX-XX +### [GLM 0.9.8.4](https://github.com/g-truc/glm/tree/0.9.8) - 201X-XX-XX + +--- +### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12 #### Improvements: -======= -#### [GLM 0.9.8.4](https://github.com/g-truc/glm/tree/0.9.8) - 201X-XX-XX - - -#### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12 -##### Improvements: ->>>>>>> 0.9.8 - Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378 #### Fixes: From 6482dd29d26968e07b697fdf0222d16223de40be Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 14:19:22 +0100 Subject: [PATCH 17/21] Added GLM_ENABLE_EXPERIMENTAL --- glm/detail/glm.cpp | 1 + glm/ext.hpp | 2 ++ glm/gtx/associated_min_max.hpp | 4 ++++ glm/gtx/bit.hpp | 4 ++++ glm/gtx/closest_point.hpp | 4 ++++ glm/gtx/color_space.hpp | 4 ++++ glm/gtx/color_space_YCoCg.hpp | 4 ++++ glm/gtx/common.hpp | 4 ++++ glm/gtx/compatibility.hpp | 4 ++++ glm/gtx/component_wise.hpp | 4 ++++ glm/gtx/dual_quaternion.hpp | 4 ++++ glm/gtx/euler_angles.hpp | 4 ++++ glm/gtx/extend.hpp | 4 ++++ glm/gtx/extended_min_max.hpp | 4 ++++ glm/gtx/fast_exponential.hpp | 4 ++++ glm/gtx/fast_square_root.hpp | 4 ++++ glm/gtx/fast_trigonometry.hpp | 4 ++++ glm/gtx/gradient_paint.hpp | 4 ++++ glm/gtx/handed_coordinate_space.hpp | 4 ++++ glm/gtx/hash.hpp | 4 ++++ glm/gtx/integer.hpp | 4 ++++ glm/gtx/intersect.hpp | 4 ++++ glm/gtx/io.hpp | 4 ++++ glm/gtx/log_base.hpp | 4 ++++ glm/gtx/matrix_cross_product.hpp | 4 ++++ glm/gtx/matrix_decompose.hpp | 4 ++++ glm/gtx/matrix_interpolation.hpp | 4 ++++ glm/gtx/matrix_major_storage.hpp | 4 ++++ glm/gtx/matrix_operation.hpp | 4 ++++ glm/gtx/matrix_query.hpp | 4 ++++ glm/gtx/matrix_transform_2d.hpp | 3 +++ glm/gtx/mixed_product.hpp | 4 ++++ glm/gtx/norm.hpp | 4 ++++ glm/gtx/normal.hpp | 4 ++++ glm/gtx/normalize_dot.hpp | 4 ++++ glm/gtx/number_precision.hpp | 4 ++++ glm/gtx/optimum_pow.hpp | 4 ++++ glm/gtx/orthonormalize.hpp | 4 ++++ glm/gtx/perpendicular.hpp | 4 ++++ glm/gtx/polar_coordinates.hpp | 4 ++++ glm/gtx/projection.hpp | 4 ++++ glm/gtx/quaternion.hpp | 4 ++++ glm/gtx/range.hpp | 4 ++++ glm/gtx/raw_data.hpp | 4 ++++ glm/gtx/rotate_normalized_axis.hpp | 4 ++++ glm/gtx/rotate_vector.hpp | 4 ++++ glm/gtx/scalar_multiplication.hpp | 4 ++++ glm/gtx/scalar_relational.hpp | 4 ++++ glm/gtx/spline.hpp | 4 ++++ glm/gtx/std_based_type.hpp | 4 ++++ glm/gtx/string_cast.hpp | 4 ++++ glm/gtx/transform.hpp | 4 ++++ glm/gtx/transform2.hpp | 4 ++++ glm/gtx/type_aligned.hpp | 4 ++++ glm/gtx/type_trait.hpp | 4 ++++ glm/gtx/vec_swizzle.hpp | 18 +++++++++++++++++- glm/gtx/vector_angle.hpp | 4 ++++ glm/gtx/vector_query.hpp | 4 ++++ glm/gtx/wrap.hpp | 4 ++++ manual.md | 2 ++ readme.md | 1 + test/gtc/gtc_integer.cpp | 1 + test/gtc/gtc_noise.cpp | 1 + test/gtx/gtx_associated_min_max.cpp | 1 + test/gtx/gtx_closest_point.cpp | 1 + test/gtx/gtx_color_space.cpp | 1 + test/gtx/gtx_color_space_YCoCg.cpp | 1 + test/gtx/gtx_common.cpp | 1 + test/gtx/gtx_compatibility.cpp | 1 + test/gtx/gtx_component_wise.cpp | 1 + test/gtx/gtx_dual_quaternion.cpp | 1 + test/gtx/gtx_euler_angle.cpp | 1 + test/gtx/gtx_extend.cpp | 1 + test/gtx/gtx_extended_min_max.cpp | 1 + test/gtx/gtx_fast_exponential.cpp | 1 + test/gtx/gtx_fast_square_root.cpp | 1 + test/gtx/gtx_fast_trigonometry.cpp | 1 + test/gtx/gtx_gradient_paint.cpp | 1 + test/gtx/gtx_handed_coordinate_space.cpp | 1 + test/gtx/gtx_integer.cpp | 1 + test/gtx/gtx_intersect.cpp | 1 + test/gtx/gtx_io.cpp | 1 + test/gtx/gtx_log_base.cpp | 1 + test/gtx/gtx_matrix_cross_product.cpp | 1 + test/gtx/gtx_matrix_decompose.cpp | 1 + test/gtx/gtx_matrix_interpolation.cpp | 1 + test/gtx/gtx_matrix_major_storage.cpp | 1 + test/gtx/gtx_matrix_operation.cpp | 1 + test/gtx/gtx_matrix_query.cpp | 1 + test/gtx/gtx_matrix_transform_2d.cpp | 1 + test/gtx/gtx_norm.cpp | 1 + test/gtx/gtx_normal.cpp | 1 + test/gtx/gtx_normalize_dot.cpp | 1 + test/gtx/gtx_number_precision.cpp | 1 + test/gtx/gtx_optimum_pow.cpp | 1 + test/gtx/gtx_orthonormalize.cpp | 1 + test/gtx/gtx_perpendicular.cpp | 1 + test/gtx/gtx_polar_coordinates.cpp | 1 + test/gtx/gtx_projection.cpp | 1 + test/gtx/gtx_quaternion.cpp | 1 + test/gtx/gtx_range.cpp | 1 + test/gtx/gtx_rotate_normalized_axis.cpp | 1 + test/gtx/gtx_rotate_vector.cpp | 1 + test/gtx/gtx_scalar_multiplication.cpp | 1 + test/gtx/gtx_scalar_relational.cpp | 1 + test/gtx/gtx_spline.cpp | 1 + test/gtx/gtx_string_cast.cpp | 1 + test/gtx/gtx_type_aligned.cpp | 1 + test/gtx/gtx_type_trait.cpp | 1 + test/gtx/gtx_vec_swizzle.cpp | 1 + test/gtx/gtx_vector_angle.cpp | 1 + test/gtx/gtx_vector_query.cpp | 1 + test/gtx/gtx_wrap.cpp | 1 + 113 files changed, 298 insertions(+), 1 deletion(-) diff --git a/glm/detail/glm.cpp b/glm/detail/glm.cpp index da3be4e05..0fc085e5a 100644 --- a/glm/detail/glm.cpp +++ b/glm/detail/glm.cpp @@ -1,6 +1,7 @@ /// @ref core /// @file glm/glm.cpp +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/glm/ext.hpp b/glm/ext.hpp index b43f56444..c385a79b0 100644 --- a/glm/ext.hpp +++ b/glm/ext.hpp @@ -60,6 +60,7 @@ # include "./gtc/type_aligned.hpp" #endif +#ifdef GLM_ENABLE_EXPERIMENTAL #include "./gtx/associated_min_max.hpp" #include "./gtx/bit.hpp" #include "./gtx/closest_point.hpp" @@ -116,3 +117,4 @@ #if GLM_HAS_RANGE_FOR # include "./gtx/range.hpp" #endif +#endif//GLM_ENABLE_EXPERIMENTAL diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp index eb9d72105..32225d1c5 100644 --- a/glm/gtx/associated_min_max.hpp +++ b/glm/gtx/associated_min_max.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GTX_associated_min_max is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_associated_min_max extension included") #endif diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp index f64673ab1..68ede826a 100644 --- a/glm/gtx/bit.hpp +++ b/glm/gtx/bit.hpp @@ -15,6 +15,10 @@ // Dependencies #include "../gtc/bitfield.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_bit is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead") #endif diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp index 8d435b819..16ec279bb 100644 --- a/glm/gtx/closest_point.hpp +++ b/glm/gtx/closest_point.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_closest_point is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_closest_point extension included") #endif diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp index 9ff08dced..9b50dce8c 100644 --- a/glm/gtx/color_space.hpp +++ b/glm/gtx/color_space.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_color_space is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_color_space extension included") #endif diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp index 428ca6d29..e5a7d1a50 100644 --- a/glm/gtx/color_space_YCoCg.hpp +++ b/glm/gtx/color_space_YCoCg.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_color_space_YCoCg is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included") #endif diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp index 0e1d0d8d7..b50184e18 100644 --- a/glm/gtx/common.hpp +++ b/glm/gtx/common.hpp @@ -18,6 +18,10 @@ #include "../vec4.hpp" #include "../gtc/vec1.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_common is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_common extension included") #endif diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp index a31f7d44a..f5d670654 100644 --- a/glm/gtx/compatibility.hpp +++ b/glm/gtx/compatibility.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include "../gtc/quaternion.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_compatibility is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_compatibility extension included") #endif diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp index c316f9e27..0785fa96f 100644 --- a/glm/gtx/component_wise.hpp +++ b/glm/gtx/component_wise.hpp @@ -18,6 +18,10 @@ #include "../detail/setup.hpp" #include "../detail/precision.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_component_wise is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_component_wise extension included") #endif diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index 432414c4d..50372bf74 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -20,6 +20,10 @@ #include "../gtc/constants.hpp" #include "../gtc/quaternion.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_dual_quaternion is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_dual_quaternion extension included") #endif diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp index 3bf5481a1..e871e6978 100644 --- a/glm/gtx/euler_angles.hpp +++ b/glm/gtx/euler_angles.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_euler_angles is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_euler_angles extension included") #endif diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp index 26837a839..37ff5d87c 100644 --- a/glm/gtx/extend.hpp +++ b/glm/gtx/extend.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_extend is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_extend extension included") #endif diff --git a/glm/gtx/extended_min_max.hpp b/glm/gtx/extended_min_max.hpp index f4d885953..d93645015 100644 --- a/glm/gtx/extended_min_max.hpp +++ b/glm/gtx/extended_min_max.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_extented_min_max is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_extented_min_max extension included") #endif diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp index ed64a27d7..b2d9dbac1 100644 --- a/glm/gtx/fast_exponential.hpp +++ b/glm/gtx/fast_exponential.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_fast_exponential is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_fast_exponential extension included") #endif diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp index 35aa7f3b4..cb7bd9ad0 100644 --- a/glm/gtx/fast_square_root.hpp +++ b/glm/gtx/fast_square_root.hpp @@ -19,6 +19,10 @@ #include "../exponential.hpp" #include "../geometric.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_fast_square_root is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_fast_square_root extension included") #endif diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp index ccb1d2271..cd104bff5 100644 --- a/glm/gtx/fast_trigonometry.hpp +++ b/glm/gtx/fast_trigonometry.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../gtc/constants.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_fast_trigonometry is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_fast_trigonometry extension included") #endif diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp index de1f18d39..d7a9ca851 100644 --- a/glm/gtx/gradient_paint.hpp +++ b/glm/gtx/gradient_paint.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include "../gtx/optimum_pow.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_gradient_paint is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_gradient_paint extension included") #endif diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp index 2ee5175e8..57d892c2a 100644 --- a/glm/gtx/handed_coordinate_space.hpp +++ b/glm/gtx/handed_coordinate_space.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_handed_coordinate_space is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included") #endif diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp index 22626188c..eb3fe6f04 100644 --- a/glm/gtx/hash.hpp +++ b/glm/gtx/hash.hpp @@ -12,6 +12,10 @@ #pragma once +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_hash is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #include #include "../vec2.hpp" diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp index 1173a58e8..9cf53d8e4 100644 --- a/glm/gtx/integer.hpp +++ b/glm/gtx/integer.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include "../gtc/integer.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_integer is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_integer extension included") #endif diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp index 33b6e99ba..80f2a1cde 100644 --- a/glm/gtx/intersect.hpp +++ b/glm/gtx/intersect.hpp @@ -21,6 +21,10 @@ #include "../gtx/closest_point.hpp" #include "../gtx/vector_query.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_closest_point is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_closest_point extension included") #endif diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp index 6aa84150f..7bd6f372c 100644 --- a/glm/gtx/io.hpp +++ b/glm/gtx/io.hpp @@ -23,6 +23,10 @@ #include "../glm.hpp" #include "../gtx/quaternion.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_io is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_io extension included") #endif diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp index 7958fc3ec..352e4ab21 100644 --- a/glm/gtx/log_base.hpp +++ b/glm/gtx/log_base.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_log_base is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_log_base extension included") #endif diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp index d920f4ef0..d87a3beb3 100644 --- a/glm/gtx/matrix_cross_product.hpp +++ b/glm/gtx/matrix_cross_product.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_cross_product is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_cross_product extension included") #endif diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp index e163f5a35..5852114bc 100644 --- a/glm/gtx/matrix_decompose.hpp +++ b/glm/gtx/matrix_decompose.hpp @@ -20,6 +20,10 @@ #include "../gtc/quaternion.hpp" #include "../gtc/matrix_transform.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_decompose is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_decompose extension included") #endif diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp index 77a69eac6..09b1a2053 100644 --- a/glm/gtx/matrix_interpolation.hpp +++ b/glm/gtx/matrix_interpolation.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_interpolation is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_interpolation extension included") #endif diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp index 9402abee7..6e9198b0c 100644 --- a/glm/gtx/matrix_major_storage.hpp +++ b/glm/gtx/matrix_major_storage.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_major_storage is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_major_storage extension included") #endif diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp index 3192ae54c..e40d77708 100644 --- a/glm/gtx/matrix_operation.hpp +++ b/glm/gtx/matrix_operation.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_operation is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_operation extension included") #endif diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp index 251827417..4c0737fae 100644 --- a/glm/gtx/matrix_query.hpp +++ b/glm/gtx/matrix_query.hpp @@ -18,6 +18,10 @@ #include "../gtx/vector_query.hpp" #include +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_query is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_query extension included") #endif diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp index 91f4834e6..471093e02 100644 --- a/glm/gtx/matrix_transform_2d.hpp +++ b/glm/gtx/matrix_transform_2d.hpp @@ -17,6 +17,9 @@ #include "../mat3x3.hpp" #include "../vec2.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_matrix_transform_2d is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_matrix_transform_2d extension included") diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp index 65861f721..4edb829f2 100644 --- a/glm/gtx/mixed_product.hpp +++ b/glm/gtx/mixed_product.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_mixed_product is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_mixed_product extension included") #endif diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp index b3cb52830..5dd6e3de9 100644 --- a/glm/gtx/norm.hpp +++ b/glm/gtx/norm.hpp @@ -17,6 +17,10 @@ #include "../detail/func_geometric.hpp" #include "../gtx/quaternion.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_norm is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_norm extension included") #endif diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp index 2e0044e37..24bc274d4 100644 --- a/glm/gtx/normal.hpp +++ b/glm/gtx/normal.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_normal is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_normal extension included") #endif diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp index de650d30c..db7ae3727 100644 --- a/glm/gtx/normalize_dot.hpp +++ b/glm/gtx/normalize_dot.hpp @@ -16,6 +16,10 @@ // Dependency: #include "../gtx/fast_square_root.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_normalize_dot is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_normalize_dot extension included") #endif diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp index 736d03510..1ce6cf8c9 100644 --- a/glm/gtx/number_precision.hpp +++ b/glm/gtx/number_precision.hpp @@ -18,6 +18,10 @@ #include "../glm.hpp" #include "../gtc/type_precision.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_number_precision is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_number_precision extension included") #endif diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp index e9510c41d..c1e609b34 100644 --- a/glm/gtx/optimum_pow.hpp +++ b/glm/gtx/optimum_pow.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_optimum_pow is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_optimum_pow extension included") #endif diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp index 4bea44970..33ed351e1 100644 --- a/glm/gtx/orthonormalize.hpp +++ b/glm/gtx/orthonormalize.hpp @@ -18,6 +18,10 @@ #include "../mat3x3.hpp" #include "../geometric.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_orthonormalize is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_orthonormalize extension included") #endif diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp index 8b6260a9b..5506cf69f 100644 --- a/glm/gtx/perpendicular.hpp +++ b/glm/gtx/perpendicular.hpp @@ -17,6 +17,10 @@ #include "../glm.hpp" #include "../gtx/projection.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_perpendicular is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_perpendicular extension included") #endif diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp index c647c0faa..14aebdab5 100644 --- a/glm/gtx/polar_coordinates.hpp +++ b/glm/gtx/polar_coordinates.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_polar_coordinates is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_polar_coordinates extension included") #endif diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp index fcddae870..bd781b109 100644 --- a/glm/gtx/projection.hpp +++ b/glm/gtx/projection.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../geometric.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_projection is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_projection extension included") #endif diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp index 674d7e755..5a36f2faa 100644 --- a/glm/gtx/quaternion.hpp +++ b/glm/gtx/quaternion.hpp @@ -19,6 +19,10 @@ #include "../gtc/quaternion.hpp" #include "../gtx/norm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_quaternion is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_quaternion extension included") #endif diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp index 00d78b414..ebaa4196e 100644 --- a/glm/gtx/range.hpp +++ b/glm/gtx/range.hpp @@ -15,6 +15,10 @@ // Dependencies #include "../detail/setup.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_range is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if !GLM_HAS_RANGE_FOR # error "GLM_GTX_range requires C++11 suppport or 'range for'" #endif diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp index 2625fd11e..105d953fb 100644 --- a/glm/gtx/raw_data.hpp +++ b/glm/gtx/raw_data.hpp @@ -16,6 +16,10 @@ #include "../detail/setup.hpp" #include "../detail/type_int.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_raw_data is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_raw_data extension included") #endif diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp index f1dfa7b8c..23f3fc115 100644 --- a/glm/gtx/rotate_normalized_axis.hpp +++ b/glm/gtx/rotate_normalized_axis.hpp @@ -19,6 +19,10 @@ #include "../gtc/epsilon.hpp" #include "../gtc/quaternion.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_rotate_normalized_axis is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included") #endif diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp index 91d1784d9..b5c9e8329 100644 --- a/glm/gtx/rotate_vector.hpp +++ b/glm/gtx/rotate_vector.hpp @@ -17,6 +17,10 @@ #include "../glm.hpp" #include "../gtx/transform.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_rotate_vector is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_rotate_vector extension included") #endif diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp index 695e841c3..30859ff00 100644 --- a/glm/gtx/scalar_multiplication.hpp +++ b/glm/gtx/scalar_multiplication.hpp @@ -14,6 +14,10 @@ #include "../detail/setup.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_scalar_multiplication is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if !GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC) # error "GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC" #endif diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp index 969571657..e80c4f7ac 100644 --- a/glm/gtx/scalar_relational.hpp +++ b/glm/gtx/scalar_relational.hpp @@ -15,6 +15,10 @@ // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_extend is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_extend extension included") #endif diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp index 333a5bce1..9bda48df8 100644 --- a/glm/gtx/spline.hpp +++ b/glm/gtx/spline.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include "../gtx/optimum_pow.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_spline is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_spline extension included") #endif diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp index ea1791b3c..9d7db60ac 100644 --- a/glm/gtx/std_based_type.hpp +++ b/glm/gtx/std_based_type.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_std_based_type is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_std_based_type extension included") #endif diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp index 7e96b56e5..027f03aec 100644 --- a/glm/gtx/string_cast.hpp +++ b/glm/gtx/string_cast.hpp @@ -22,6 +22,10 @@ #include "../gtx/dual_quaternion.hpp" #include +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_string_cast is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if(GLM_COMPILER & GLM_COMPILER_CUDA) # error "GLM_GTX_string_cast is not supported on CUDA compiler" #endif diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp index 365748b9e..804b9aab4 100644 --- a/glm/gtx/transform.hpp +++ b/glm/gtx/transform.hpp @@ -19,6 +19,10 @@ #include "../glm.hpp" #include "../gtc/matrix_transform.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_transform is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_transform extension included") #endif diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp index bf5fbc9ee..1618e8e4f 100644 --- a/glm/gtx/transform2.hpp +++ b/glm/gtx/transform2.hpp @@ -17,6 +17,10 @@ #include "../glm.hpp" #include "../gtx/transform.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_transform2 is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_transform2 extension included") #endif diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp index 8962a6f8d..2f5fd0d94 100644 --- a/glm/gtx/type_aligned.hpp +++ b/glm/gtx/type_aligned.hpp @@ -18,6 +18,10 @@ // Dependency: #include "../gtc/type_precision.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_type_aligned is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_type_aligned extension included") #endif diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp index 0207a06d4..45556e455 100644 --- a/glm/gtx/type_trait.hpp +++ b/glm/gtx/type_trait.hpp @@ -12,6 +12,10 @@ #pragma once +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_type_trait is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + // Dependency: #include "../detail/type_vec2.hpp" #include "../detail/type_vec3.hpp" diff --git a/glm/gtx/vec_swizzle.hpp b/glm/gtx/vec_swizzle.hpp index 186c51bf5..5d985d6cd 100644 --- a/glm/gtx/vec_swizzle.hpp +++ b/glm/gtx/vec_swizzle.hpp @@ -1,6 +1,22 @@ +/// @ref gtx_vec_swizzle +/// @file glm/gtx/vec_swizzle.hpp +/// +/// @see core (dependence) +/// +/// @defgroup gtx_vec_swizzle GLM_GTX_vec_swizzle +/// @ingroup gtx +/// +/// @brief Functions to perform swizzle operation. +/// +/// need to be included to use these functionalities. + #pragma once -#include +#include "../glm.hpp" + +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_vec_swizzle is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif namespace glm { // xx diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp index d52d3f83f..18886e04f 100644 --- a/glm/gtx/vector_angle.hpp +++ b/glm/gtx/vector_angle.hpp @@ -20,6 +20,10 @@ #include "../gtx/quaternion.hpp" #include "../gtx/rotate_vector.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_vector_angle is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_vector_angle extension included") #endif diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp index 2c0d0227c..fc9dc3c98 100644 --- a/glm/gtx/vector_query.hpp +++ b/glm/gtx/vector_query.hpp @@ -17,6 +17,10 @@ #include #include +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_vector_query is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_vector_query extension included") #endif diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp index 00600732f..93fcd1a39 100644 --- a/glm/gtx/wrap.hpp +++ b/glm/gtx/wrap.hpp @@ -16,6 +16,10 @@ #include "../glm.hpp" #include "../gtc/vec1.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_wrap is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_wrap extension included") #endif diff --git a/manual.md b/manual.md index ae8947c83..235506547 100644 --- a/manual.md +++ b/manual.md @@ -1099,6 +1099,8 @@ GTX extensions are qualified to be experimental extensions. In GLM this means th time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations and APIs and then are promoted to GTC extensions. This is fairly the way OpenGL features are developed; through extensions. +Stating with GLM 0.9.9, to use experimental extensions, an application but define GLM_ENABLE_EXPERIMENTAL. + ### 7.5. Where can I ask my questions? A good place is [stackoverflow](http://stackoverflow.com/search?q=GLM) using the GLM tag. diff --git a/readme.md b/readme.md index 58645c5f6..61d95b4c0 100644 --- a/readme.md +++ b/readme.md @@ -55,6 +55,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Added RGBM encoding in GTC_packing #420 - Added GTC_color_encoding extension - Added GTX_vec_swizzle, faster compile time swizzling then swizzle operator #558 +- Added [GLM_ENABLE_EXPERIMENTAL](manual.md#section7.4) to enable experimental features. #### Improvements: - Added lowp variant of GTC_colorspace convertLinearToSRGB #419 diff --git a/test/gtc/gtc_integer.cpp b/test/gtc/gtc_integer.cpp index f3d056e24..cbaf50168 100644 --- a/test/gtc/gtc_integer.cpp +++ b/test/gtc/gtc_integer.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #define GLM_FORCE_INLINE #include #include diff --git a/test/gtc/gtc_noise.cpp b/test/gtc/gtc_noise.cpp index ec58693ed..55e61eda8 100644 --- a/test/gtc/gtc_noise.cpp +++ b/test/gtc/gtc_noise.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_associated_min_max.cpp b/test/gtx/gtx_associated_min_max.cpp index b025ee2f6..9007f8aac 100644 --- a/test/gtx/gtx_associated_min_max.cpp +++ b/test/gtx/gtx_associated_min_max.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/test/gtx/gtx_closest_point.cpp b/test/gtx/gtx_closest_point.cpp index 88cf4db17..0f6303a5d 100644 --- a/test/gtx/gtx_closest_point.cpp +++ b/test/gtx/gtx_closest_point.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_color_space.cpp b/test/gtx/gtx_color_space.cpp index 19ac276b6..a23d2c86b 100644 --- a/test/gtx/gtx_color_space.cpp +++ b/test/gtx/gtx_color_space.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int test_saturation() diff --git a/test/gtx/gtx_color_space_YCoCg.cpp b/test/gtx/gtx_color_space_YCoCg.cpp index e42e32895..2ca131dc1 100644 --- a/test/gtx/gtx_color_space_YCoCg.cpp +++ b/test/gtx/gtx_color_space_YCoCg.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_common.cpp b/test/gtx/gtx_common.cpp index 279669559..b24d5e044 100644 --- a/test/gtx/gtx_common.cpp +++ b/test/gtx/gtx_common.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_compatibility.cpp b/test/gtx/gtx_compatibility.cpp index b3ec17855..e5351ce68 100644 --- a/test/gtx/gtx_compatibility.cpp +++ b/test/gtx/gtx_compatibility.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_component_wise.cpp b/test/gtx/gtx_component_wise.cpp index 1ccc23469..29c81af4c 100644 --- a/test/gtx/gtx_component_wise.cpp +++ b/test/gtx/gtx_component_wise.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_dual_quaternion.cpp b/test/gtx/gtx_dual_quaternion.cpp index 73d400f00..fd17c1992 100644 --- a/test/gtx/gtx_dual_quaternion.cpp +++ b/test/gtx/gtx_dual_quaternion.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_euler_angle.cpp b/test/gtx/gtx_euler_angle.cpp index d56e419a4..98ed343e0 100644 --- a/test/gtx/gtx_euler_angle.cpp +++ b/test/gtx/gtx_euler_angle.cpp @@ -1,5 +1,6 @@ // Code sample from Filippo Ramaciotti +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_extend.cpp b/test/gtx/gtx_extend.cpp index d87830d7e..0c37df567 100644 --- a/test/gtx/gtx_extend.cpp +++ b/test/gtx/gtx_extend.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_extended_min_max.cpp b/test/gtx/gtx_extended_min_max.cpp index 96c2c0eb7..f4157e934 100644 --- a/test/gtx/gtx_extended_min_max.cpp +++ b/test/gtx/gtx_extended_min_max.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_fast_exponential.cpp b/test/gtx/gtx_fast_exponential.cpp index 74468ec79..341e26ef9 100644 --- a/test/gtx/gtx_fast_exponential.cpp +++ b/test/gtx/gtx_fast_exponential.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_fast_square_root.cpp b/test/gtx/gtx_fast_square_root.cpp index 5939d06d2..5571c6577 100644 --- a/test/gtx/gtx_fast_square_root.cpp +++ b/test/gtx/gtx_fast_square_root.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_fast_trigonometry.cpp b/test/gtx/gtx_fast_trigonometry.cpp index d7652201f..72ae3c402 100644 --- a/test/gtx/gtx_fast_trigonometry.cpp +++ b/test/gtx/gtx_fast_trigonometry.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_gradient_paint.cpp b/test/gtx/gtx_gradient_paint.cpp index 4f1674400..01f521bf2 100644 --- a/test/gtx/gtx_gradient_paint.cpp +++ b/test/gtx/gtx_gradient_paint.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int test_radialGradient() diff --git a/test/gtx/gtx_handed_coordinate_space.cpp b/test/gtx/gtx_handed_coordinate_space.cpp index baebb3617..e417688b4 100644 --- a/test/gtx/gtx_handed_coordinate_space.cpp +++ b/test/gtx/gtx_handed_coordinate_space.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_integer.cpp b/test/gtx/gtx_integer.cpp index 7fa44f49c..f810953fe 100644 --- a/test/gtx/gtx_integer.cpp +++ b/test/gtx/gtx_integer.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_intersect.cpp b/test/gtx/gtx_intersect.cpp index 8b4a5fbd4..0eeb0031f 100644 --- a/test/gtx/gtx_intersect.cpp +++ b/test/gtx/gtx_intersect.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_io.cpp b/test/gtx/gtx_io.cpp index a7ab7a76b..cc83a27aa 100644 --- a/test/gtx/gtx_io.cpp +++ b/test/gtx/gtx_io.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_log_base.cpp b/test/gtx/gtx_log_base.cpp index 66c6d51f9..37c746439 100644 --- a/test/gtx/gtx_log_base.cpp +++ b/test/gtx/gtx_log_base.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_matrix_cross_product.cpp b/test/gtx/gtx_matrix_cross_product.cpp index 325a327b6..c1d0fa958 100644 --- a/test/gtx/gtx_matrix_cross_product.cpp +++ b/test/gtx/gtx_matrix_cross_product.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_matrix_decompose.cpp b/test/gtx/gtx_matrix_decompose.cpp index b8c3371f7..5a1884e5c 100644 --- a/test/gtx/gtx_matrix_decompose.cpp +++ b/test/gtx/gtx_matrix_decompose.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_matrix_interpolation.cpp b/test/gtx/gtx_matrix_interpolation.cpp index 88724f94b..6498339bc 100644 --- a/test/gtx/gtx_matrix_interpolation.cpp +++ b/test/gtx/gtx_matrix_interpolation.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_matrix_major_storage.cpp b/test/gtx/gtx_matrix_major_storage.cpp index 85a9250ae..21de7f71d 100644 --- a/test/gtx/gtx_matrix_major_storage.cpp +++ b/test/gtx/gtx_matrix_major_storage.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_matrix_operation.cpp b/test/gtx/gtx_matrix_operation.cpp index bfd636081..cae2ed48b 100644 --- a/test/gtx/gtx_matrix_operation.cpp +++ b/test/gtx/gtx_matrix_operation.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_matrix_query.cpp b/test/gtx/gtx_matrix_query.cpp index 71732a105..0dda1f093 100644 --- a/test/gtx/gtx_matrix_query.cpp +++ b/test/gtx/gtx_matrix_query.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int test_isNull() diff --git a/test/gtx/gtx_matrix_transform_2d.cpp b/test/gtx/gtx_matrix_transform_2d.cpp index 836df7c80..f80d2633f 100644 --- a/test/gtx/gtx_matrix_transform_2d.cpp +++ b/test/gtx/gtx_matrix_transform_2d.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_norm.cpp b/test/gtx/gtx_norm.cpp index c088d9279..38cef8c27 100644 --- a/test/gtx/gtx_norm.cpp +++ b/test/gtx/gtx_norm.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_normal.cpp b/test/gtx/gtx_normal.cpp index 7526bc050..7a01ec0b2 100644 --- a/test/gtx/gtx_normal.cpp +++ b/test/gtx/gtx_normal.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_normalize_dot.cpp b/test/gtx/gtx_normalize_dot.cpp index 36c9728f1..960586300 100644 --- a/test/gtx/gtx_normalize_dot.cpp +++ b/test/gtx/gtx_normalize_dot.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_number_precision.cpp b/test/gtx/gtx_number_precision.cpp index 555ad7950..a5a3ef237 100644 --- a/test/gtx/gtx_number_precision.cpp +++ b/test/gtx/gtx_number_precision.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_optimum_pow.cpp b/test/gtx/gtx_optimum_pow.cpp index a7b290b45..c0a3fd411 100644 --- a/test/gtx/gtx_optimum_pow.cpp +++ b/test/gtx/gtx_optimum_pow.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_orthonormalize.cpp b/test/gtx/gtx_orthonormalize.cpp index 189e79f6d..0e7a8c8b4 100644 --- a/test/gtx/gtx_orthonormalize.cpp +++ b/test/gtx/gtx_orthonormalize.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_perpendicular.cpp b/test/gtx/gtx_perpendicular.cpp index 7e89ca971..d14cfee30 100644 --- a/test/gtx/gtx_perpendicular.cpp +++ b/test/gtx/gtx_perpendicular.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_polar_coordinates.cpp b/test/gtx/gtx_polar_coordinates.cpp index 1ac584979..da2fe536e 100644 --- a/test/gtx/gtx_polar_coordinates.cpp +++ b/test/gtx/gtx_polar_coordinates.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_projection.cpp b/test/gtx/gtx_projection.cpp index d549adfd5..8f9f77223 100644 --- a/test/gtx/gtx_projection.cpp +++ b/test/gtx/gtx_projection.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_quaternion.cpp b/test/gtx/gtx_quaternion.cpp index 12e12b2a3..a6daf7154 100644 --- a/test/gtx/gtx_quaternion.cpp +++ b/test/gtx/gtx_quaternion.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_range.cpp b/test/gtx/gtx_range.cpp index 77c4792f4..d93d64d42 100644 --- a/test/gtx/gtx_range.cpp +++ b/test/gtx/gtx_range.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/test/gtx/gtx_rotate_normalized_axis.cpp b/test/gtx/gtx_rotate_normalized_axis.cpp index 7dca2281b..d4eecdfce 100644 --- a/test/gtx/gtx_rotate_normalized_axis.cpp +++ b/test/gtx/gtx_rotate_normalized_axis.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_rotate_vector.cpp b/test/gtx/gtx_rotate_vector.cpp index 44935b3cd..970ca4cfa 100644 --- a/test/gtx/gtx_rotate_vector.cpp +++ b/test/gtx/gtx_rotate_vector.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/test/gtx/gtx_scalar_multiplication.cpp b/test/gtx/gtx_scalar_multiplication.cpp index 0a1adf029..1b0d5d827 100644 --- a/test/gtx/gtx_scalar_multiplication.cpp +++ b/test/gtx/gtx_scalar_multiplication.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #if GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC) diff --git a/test/gtx/gtx_scalar_relational.cpp b/test/gtx/gtx_scalar_relational.cpp index a526b0e84..b5c3c8720 100644 --- a/test/gtx/gtx_scalar_relational.cpp +++ b/test/gtx/gtx_scalar_relational.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_spline.cpp b/test/gtx/gtx_spline.cpp index 38ed5487d..c93ee17ae 100644 --- a/test/gtx/gtx_spline.cpp +++ b/test/gtx/gtx_spline.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_string_cast.cpp b/test/gtx/gtx_string_cast.cpp index 94af4ec29..812017a0c 100644 --- a/test/gtx/gtx_string_cast.cpp +++ b/test/gtx/gtx_string_cast.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_type_aligned.cpp b/test/gtx/gtx_type_aligned.cpp index 7274a7ebd..9332138e5 100644 --- a/test/gtx/gtx_type_aligned.cpp +++ b/test/gtx/gtx_type_aligned.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/test/gtx/gtx_type_trait.cpp b/test/gtx/gtx_type_trait.cpp index 394272696..9b96a3631 100644 --- a/test/gtx/gtx_type_trait.cpp +++ b/test/gtx/gtx_type_trait.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/test/gtx/gtx_vec_swizzle.cpp b/test/gtx/gtx_vec_swizzle.cpp index 7d004038e..0b0c8b89c 100644 --- a/test/gtx/gtx_vec_swizzle.cpp +++ b/test/gtx/gtx_vec_swizzle.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include int main() diff --git a/test/gtx/gtx_vector_angle.cpp b/test/gtx/gtx_vector_angle.cpp index 1b4a60789..ae646879d 100644 --- a/test/gtx/gtx_vector_angle.cpp +++ b/test/gtx/gtx_vector_angle.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_vector_query.cpp b/test/gtx/gtx_vector_query.cpp index 160b9fa25..729f9e18a 100644 --- a/test/gtx/gtx_vector_query.cpp +++ b/test/gtx/gtx_vector_query.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include #include diff --git a/test/gtx/gtx_wrap.cpp b/test/gtx/gtx_wrap.cpp index cd7d7c4f0..48ee0dc63 100644 --- a/test/gtx/gtx_wrap.cpp +++ b/test/gtx/gtx_wrap.cpp @@ -1,3 +1,4 @@ +#define GLM_ENABLE_EXPERIMENTAL #include #include From dbf84a50a660ef8e6f6b8da2105cc3be5a359524 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 14:20:23 +0100 Subject: [PATCH 18/21] Fixed link --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 61d95b4c0..f47087cb6 100644 --- a/readme.md +++ b/readme.md @@ -55,7 +55,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Added RGBM encoding in GTC_packing #420 - Added GTC_color_encoding extension - Added GTX_vec_swizzle, faster compile time swizzling then swizzle operator #558 -- Added [GLM_ENABLE_EXPERIMENTAL](manual.md#section7.4) to enable experimental features. +- Added [GLM_ENABLE_EXPERIMENTAL](manual.md#section7_4) to enable experimental features. #### Improvements: - Added lowp variant of GTC_colorspace convertLinearToSRGB #419 From 2801f4e3cec185690c48f91285f2cbdbd953eea1 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 14:22:34 +0100 Subject: [PATCH 19/21] Improved manual links --- manual.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manual.md b/manual.md index 235506547..4e1260f7c 100644 --- a/manual.md +++ b/manual.md @@ -80,7 +80,8 @@ + [9.8. Acknowledgements](#section9_8) --- -## Licenses + +## Licenses ### The Happy Bunny License (Modified MIT License) From 4f4bebccb55985e1aae69f1c81331952e313f25a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 14:23:16 +0100 Subject: [PATCH 20/21] Improved manual links --- manual.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manual.md b/manual.md index 4e1260f7c..309d03a17 100644 --- a/manual.md +++ b/manual.md @@ -80,8 +80,7 @@ + [9.8. Acknowledgements](#section9_8) --- - -## Licenses +## Licenses ### The Happy Bunny License (Modified MIT License) From 83d14ee4112749b3010034c996780eccaaff00ab Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 12 Nov 2016 14:30:30 +0100 Subject: [PATCH 21/21] Improved links in the manual --- manual.md | 142 +++++++++++++++++++++++++++--------------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/manual.md b/manual.md index 309d03a17..a89d6d4f7 100644 --- a/manual.md +++ b/manual.md @@ -136,8 +136,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ![](https://github.com/g-truc/glm/blob/manual/doc/manual/frontpage2.png) --- -## 1. Getting started -### 1.1. Setup +## 1. Getting started +### 1.1. Setup GLM is a header only library. Hence, there is nothing to build to use it. To use GLM, merely include <glm/glm.hpp> header. This include provides all the GLSL features implemented by GLM. @@ -166,7 +166,7 @@ Core GLM features can be included using individual headers to allow faster user #include // all the GLSL vector relational functions ``` -### 1.2. Faster program compilation +### 1.2. Faster program compilation GLM is a header only library that makes a heavy usage of C++ templates. This design may significantly increase the compile time for files that use GLM. Hence, it is important to limit GLM inclusion to header and source files that actually use it. Likewise, GLM extensions should be @@ -182,7 +182,7 @@ To further help compilation time, GLM 0.9.5 introduced <glm/fwd.hpp> that #include ; ``` -### 1.3. Use sample of GLM core +### 1.3. Use sample of GLM core ```cpp // Include GLM core features @@ -205,7 +205,7 @@ glm::mat4 transform(glm::vec2 const& Orientation, glm::vec3 const& Translate, gl } ``` -### 1.4. Dependencies +### 1.4. Dependencies When <glm/glm.hpp> is included, GLM provides all the GLSL features it implements in C++. @@ -215,7 +215,7 @@ GLM is built with a C++ 11 compiler in which case [static\_assert](http://en.cpp If neither are detected, GLM will rely on its own implementation of static assert. --- -## 2. Swizzle operators +## 2. Swizzle operators A common feature of shader languages like GLSL is the swizzle operators. Those allow selecting multiple components of a vector and change their order. For example, “variable.x”, “variable.xzy” and “variable.zxyy” form respectively a scalar, a three components vector and a four components vector. With GLSL, swizzle operators can be both R-values and L-values. Finally, vector components can be accessed using “xyzw”, @@ -235,7 +235,7 @@ vec3 C = A.bgr; GLM supports a subset of this functionality as described in the following sub-sections. Swizzle operators are disabled by default. To enable them GLM\_SWIZZLE must be defined before any inclusion of <glm/glm.hpp>. Enabling swizzle operators will massively increase the size of compiled files and the compilation time. -### 2.1. Standard C++98 implementation +### 2.1. Standard C++98 implementation The C++98 implementation exposes the R-value swizzle operators as member functions of vector types. @@ -276,7 +276,7 @@ void foo() } ``` -### 2.2. Anonymous union member implementation +### 2.2. Anonymous union member implementation Visual C++ supports anonymous structures in union, which is a non-standard language extension, but it enables a very powerful implementation of swizzle operators on Windows supporting both L-value swizzle operators and a syntax that doesn’t require parentheses in some cases. This implementation is only enabled when the language extension is enabled and GLM\_SWIZZLE is defined. @@ -327,9 +327,9 @@ void foo() ``` --- -## 3. Preprocessor options +## 3. Preprocessor options -### 3.1. Default precision +### 3.1. Default precision C++ does not provide a way to implement GLSL default precision selection (as defined in GLSL 4.10 specification section 4.5.3) with GLSL-like syntax. @@ -370,7 +370,7 @@ GLM\_PRECISION\_LOWP\_UINT: Low precision GLM\_PRECISION\_MEDIUMP\_UINT: Medium precision GLM\_PRECISION\_HIGHP\_UINT: High precision (default) -### 3.2. Compile-time message system +### 3.2. Compile-time message system GLM includes a notification system which can display some information at build time: @@ -390,7 +390,7 @@ only once per project build. #include ``` -### 3.3. C++ language detection +### 3.3. C++ language detection GLM will automatically take advantage of compilers’ language extensions when enabled. To increase cross platform compatibility and to avoid compiler extensions, a programmer can define GLM\_FORCE\_CXX98 before any inclusion of <glm/glm.hpp> to restrict the language feature set C++98: @@ -413,7 +413,7 @@ GLM\_FORCE\_CXX11, GLM\_FORCE\_CXX14. GLM\_FORCE\_CXX14 overrides GLM\_FORCE\_CXX11 and GLM\_FORCE\_CXX11 overrides GLM\_FORCE\_CXX98 defines. -### 3.4. SIMD support +### 3.4. SIMD support GLM provides some SIMD optimizations based on [compiler intrinsics](https://msdn.microsoft.com/en-us/library/26td21ds.aspx). These optimizations will be automatically thanks to compiler arguments. @@ -440,7 +440,7 @@ The use of intrinsic functions by GLM implementation can be avoided using the de Additionally, GLM provides a low level SIMD API in glm/simd directory for users who are really interested in writing fast algorithms. -### 3.5. Force inline +### 3.5. Force inline To push further the software performance, a programmer can define GLM\_FORCE\_INLINE before any inclusion of <glm/glm.hpp> to force the compiler to inline GLM code. @@ -449,7 +449,7 @@ To push further the software performance, a programmer can define GLM\_FORCE\_IN #include ``` -### 3.6. Vector and matrix static size +### 3.6. Vector and matrix static size GLSL supports the member function .length() for all vector and matrix types. @@ -478,7 +478,7 @@ void foo(vec4 const & v) } ``` -### 3.7. Disabling default constructor initialization +### 3.7. Disabling default constructor initialization By default and following GLSL specifications, vector and matrix default constructors initialize the components to zero. This is a reliable behavior but initialization has a cost and it’s not always necessary. This behavior can be disable at compilation time by define GLM\_FORCE\_NO\_CTOR\_INIT before any inclusion of <glm/glm.hpp> or other GLM include. @@ -520,7 +520,7 @@ void foo() } ``` -### 3.8. Require explicit conversions +### 3.8. Require explicit conversions GLSL supports implicit conversions of vector and matrix types. For example, an ivec4 can be implicitly converted into vec4. @@ -557,7 +557,7 @@ void foo() } ``` -### 3.9. Removing genType restriction +### 3.9. Removing genType restriction By default GLM only supports basic types as genType for vector, matrix and quaternion types: @@ -581,7 +581,7 @@ typedef glm::tvec4 my_hvec4; However, defining GLM\_FORCE\_UNRESTRICTED\_GENTYPE is not compatible with GLM\_FORCE\_SWIZZLE and will generate a compilation error if both are defined at the same time. --- -## 4. Stable extensions +## 4. Stable extensions GLM extends the core GLSL feature set with extensions. These extensions include: quaternion, transformation, spline, matrix inverse, color spaces, etc. @@ -605,61 +605,61 @@ int foo() When an extension is included, all the dependent core functionalities and extensions will be included as well. -### 4.1. GLM_GTC_bitfield +### 4.1. GLM_GTC_bitfield Fast bitfield operations on scalar and vector variables. <glm/gtc/bitfield.hpp> need to be included to use these features. -### 4.2. GLM_GTC_color_space +### 4.2. GLM_GTC_color_space Conversion between linear RGB and sRGB color spaces. <glm/gtc/color\_space.hpp> need to be included to use these features. -### 4.3. GLM\_GTC\_constants +### 4.3. GLM\_GTC\_constants Provide a list of built-in constants. <glm/gtc/constants.hpp> need to be included to use these features. -### 4.4. GLM\_GTC\_epsilon +### 4.4. GLM\_GTC\_epsilon Approximate equality comparisons for floating-point numbers, possibly with a user-defined epsilon. <glm/gtc/epsilon.hpp> need to be included to use these features. -### 4.5. GLM\_GTC\_functions +### 4.5. GLM\_GTC\_functions Useful functions. <glm/gtc/functions.hpp> need to be included to use these features. -### 4.6. GLM\_GTC\_integer +### 4.6. GLM\_GTC\_integer Integer variants of core GLM functions. <glm/gtc/integer.hpp> need to be included to use these features. -### 4.7. GLM\_GTC\_matrix\_access +### 4.7. GLM\_GTC\_matrix\_access Functions to conveniently access the individual rows or columns of a matrix. <glm/gtc/matrix\_access.hpp> need to be included to use these features. -### 4.8. GLM\_GTC\_matrix\_integer +### 4.8. GLM\_GTC\_matrix\_integer Integer matrix types similar to the core floating-point matrices. Some operations (such as inverse and determinant) are not supported. <glm/gtc/matrix\_integer.hpp> need to be included to use these features. -### 4.9. GLM\_GTC\_matrix\_inverse +### 4.9. GLM\_GTC\_matrix\_inverse Additional matrix inverse functions. <glm/gtc/matrix\_inverse.hpp> need to be included to use these features. -### 4.10. GLM\_GTC\_matrix\_transform +### 4.10. GLM\_GTC\_matrix\_transform Matrix transformation functions that follow the OpenGL fixed-function conventions. @@ -670,7 +670,7 @@ projective matrix functions (***perspective***, ***ortho***, etc) are designed t <glm/gtc/matrix\_transform.hpp> need to be included to use these features. -### 4.11. GLM\_GTC\_noise +### 4.11. GLM\_GTC\_noise Define 2D, 3D and 4D procedural noise functions. @@ -712,19 +712,19 @@ Figure 4.11.8: glm::perlin(glm::vec3(x / 16.f, y / 16.f, 0.5f), glm::vec3(2.0f)) Figure 4.11.9: glm::perlin(glm::vec4(x / 16.f, y / 16.f, glm::vec2(0.5f)), glm::vec4(2.0f)); -### 4.12. GLM\_GTC\_packing +### 4.12. GLM\_GTC\_packing Convert scalar and vector types to and from packed formats, saving space at the cost of precision. However, packing a value into a format that it was previously unpacked from is guaranteed to be lossless. <glm/gtc/packing.hpp> need to be included to use these features. -### 4.13. GLM\_GTC\_quaternion +### 4.13. GLM\_GTC\_quaternion Quaternions and operations upon thereof. <glm/gtc/quaternion.hpp> need to be included to use these features. -### 4.14. GLM\_GTC\_random +### 4.14. GLM\_GTC\_random Probability distributions in up to four dimensions. @@ -754,25 +754,25 @@ Figure 4.14.5: glm::vec4(glm::ballRand(1.0f), 1); Figure 4.14.6: glm::vec4(glm::gaussRand(glm::vec3(0), glm::vec3(1)), 1); -### 4.15. GLM\_GTC\_reciprocal +### 4.15. GLM\_GTC\_reciprocal Reciprocal trigonometric functions (e.g. secant, cosecant, tangent). <glm/gtc/reciprocal.hpp> need to be included to use these functionalities. -### 4.16. GLM\_GTC\_round +### 4.16. GLM\_GTC\_round Various rounding operations and common special cases thereof. <glm/gtc/round.hpp> need to be included to use these functionalities. -### 4.17. GLM\_GTC\_type\_aligned +### 4.17. GLM\_GTC\_type\_aligned Aligned vector types. <glm/gtc/type\_aligned.hpp> need to be included to use these functionalities. -### 4.18. GLM\_GTC\_type\_precision +### 4.18. GLM\_GTC\_type\_precision Vector and matrix types with defined precisions, e.g. i8vec4, which is a 4D vector of signed 8-bit integers. @@ -840,7 +840,7 @@ Available defines for 64-bit floating-point types (glm::f64vec\*, glm::f64mat\*, <glm/gtc/type\_precision.hpp> need to be included to use these functionalities. -### 4.19. GLM\_GTC\_type\_ptr +### 4.19. GLM\_GTC\_type\_ptr Facilitate interactions between pointers to basic types (e.g. float*) and GLM types (e.g. mat4). @@ -878,22 +878,22 @@ implicit cast in this example. However cast operators may produce programs runni <glm/gtc/type\_ptr.hpp> need to be included to use these features. -### 4.20. GLM\_GTC\_ulp +### 4.20. GLM\_GTC\_ulp Measure a function's accuracy given a reference implementation of it. This extension works on floating-point data and provides results in [ULP](http://ljk.imag.fr/membres/Carine.Lucas/TPScilab/JMMuller/ulp-toms.pdf). <glm/gtc/ulp.hpp> need to be included to use these features. -### 4.21. GLM\_GTC\_vec1 +### 4.21. GLM\_GTC\_vec1 Add \*vec1 types. <glm/gtc/vec1.hpp> need to be included to use these features. --- -## 5. OpenGL interoperability +## 5. OpenGL interoperability -### 5.1. GLM replacements for deprecated OpenGL functions +### 5.1. GLM replacements for deprecated OpenGL functions OpenGL 3.1 specification has deprecated some features that have been removed from OpenGL 3.2 core profile specification. GLM provides some replacement functions. @@ -978,7 +978,7 @@ glm::dmat4 glm::ortho(double left, double right, double bottom, double top, doub From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -### 5.2. GLM replacements for GLU functions +### 5.2. GLM replacements for GLU functions [***gluLookAt: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml) @@ -1037,15 +1037,15 @@ glm::dvec3 unProject(glm::dvec3 const& win, glm::dmat4 const& model, glm::dmat4 From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> --- -## 6. Known issues +## 6. Known issues This section reports GLSL features that GLM can't accurately emulate due to language restrictions. -### 6.1. not function +### 6.1. not function The GLSL function 'not' is a keyword in C++. To prevent name collisions and ensure a consistent API, the name not\_ (note the underscore) is used instead. -### 6.2. Precision qualifiers support +### 6.2. Precision qualifiers support GLM supports GLSL precision qualifiers through prefixes instead of qualifiers. For example, GLM exposes \verb|lowp_vec4|, \verb|mediump_vec4| and \verb|highp_vec4| as variations of \verb|vec4|. @@ -1078,22 +1078,22 @@ ivec3 foo(const vec4 & v) The syntax for default precision specifications in GLM differs from that in GLSL; for more information, see section Default Precision . --- -## 7. FAQ +## 7. FAQ -### 7.1 Why GLM follows GLSL specification and conventions? +### 7.1 Why GLM follows GLSL specification and conventions? Following GLSL conventions is a really strict policy of GLM. It has been designed following the idea that everyone does its own math library with his own conventions. The idea is that brilliant developers (the OpenGL ARB) worked together and agreed to make GLSL. Following GLSL conventions is a way to find consensus. Moreover, basically when a developer knows GLSL, he knows GLM. -### 7.2. Does GLM run GLSL program? +### 7.2. Does GLM run GLSL program? No, GLM is a C++ implementation of a subset of GLSL. -### 7.3. Does a GLSL compiler build GLM codes? +### 7.3. Does a GLSL compiler build GLM codes? No, this is not what GLM attends to do. -### 7.4. Should I use ‘GTX’ extensions? +### 7.4. Should I use ‘GTX’ extensions? GTX extensions are qualified to be experimental extensions. In GLM this means that these extensions might change from version to version without any restriction. In practice, it doesn’t really change except time to time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations and APIs and then are promoted to GTC @@ -1101,21 +1101,21 @@ extensions. This is fairly the way OpenGL features are developed; through extens Stating with GLM 0.9.9, to use experimental extensions, an application but define GLM_ENABLE_EXPERIMENTAL. -### 7.5. Where can I ask my questions? +### 7.5. Where can I ask my questions? A good place is [stackoverflow](http://stackoverflow.com/search?q=GLM) using the GLM tag. -### 7.6. Where can I find the documentation of extensions? +### 7.6. Where can I find the documentation of extensions? The Doxygen generated documentation includes a complete list of all extensions available. Explore this [*API documentation*](http://glm.g-truc.net/html/index.html) to get a complete view of all GLM capabilities! -### 7.7. Should I use ‘using namespace glm;’? +### 7.7. Should I use ‘using namespace glm;’? NO! Chances are that if using namespace glm; is called, especially in a header file, name collisions will happen as GLM is based on GLSL which uses common tokens for types and functions. Avoiding using namespace glm; will a higher compatibility with third party library and SDKs. -### 7.8. Is GLM fast? +### 7.8. Is GLM fast? GLM is mainly designed to be convenient and that's why it is written against the GLSL specification. @@ -1124,26 +1124,26 @@ mediump and highp qualifiers, GLM provides approximations which trade precision However, on performance critical code paths, we should expect that dedicated algorithms should be written to reach peak performance. -### 7.9. When I build with Visual C++ with /W4 warning level, I have warnings... +### 7.9. When I build with Visual C++ with /W4 warning level, I have warnings... You should not have any warnings even in /W4 mode. However, if you expect such level for your code, then you should ask for the same level to the compiler by at least disabling the Visual C++ language extensions (/Za) which generates warnings when used. If these extensions are enabled, then GLM will take advantage of them and the compiler will generate warnings. -### 7.10. Why some GLM functions can crash because of division by zero? +### 7.10. Why some GLM functions can crash because of division by zero? GLM functions crashing is the result of a domain error. Such behavior follows the precedent set by C and C++'s standard library. For example, it’s a domain error to pass a null vector (all zeroes) to glm::normalize function, or to pass a negative number into std::sqrt. -### 7.11. What unit for angles is used in GLM? +### 7.11. What unit for angles is used in GLM? GLSL is using radians but GLU is using degrees to express angles. This has caused GLM to use inconsistent units for angles. Starting with GLM 0.9.6, all GLM functions are using radians. For more information, follow the [link](http://www.g-truc.net/post-0693.html#menu). --- -## 8. Code samples +## 8. Code samples This series of samples only shows various GLM features without consideration of any sort. -### 8.1. Compute a triangle normal +### 8.1. Compute a triangle normal ```cpp #include // vec3 normalize cross @@ -1163,7 +1163,7 @@ glm::vec3 computeNormal(glm::vec3 const& a, glm::vec3 const& b, glm::vec3 const& } ``` -### 8.2. Matrix transform +### 8.2. Matrix transform ```cpp #include // vec3, vec4, ivec4, mat4 @@ -1186,7 +1186,7 @@ void setUniformMVP(GLuint Location, glm::vec3 const& Translate, glm::vec3 const& } ``` -### 8.3. Vector types +### 8.3. Vector types ```cpp #include // vec2 @@ -1235,7 +1235,7 @@ glm::i32vec2 const PositionDataI32[VertexCount] = }; ``` -### 8.4. Lighting +### 8.4. Lighting ```cpp #include // vec3 normalize reflect dot pow @@ -1273,19 +1273,19 @@ glm::vec3 lighting(intersection const& Intersection, material const& Material, l ``` --- -## 9. References +## 9. References -### 9.1. OpenGL specifications +### 9.1. OpenGL specifications * OpenGL 4.3 core specification * [GLSL 4.30 specification](http://www.opengl.org/registry/doc/GLSLangSpec.4.30.7.diff.pdf) ![](media/image21.png){width="2.859722222222222in" height="1.6083333333333334in"}- [*GLU 1.3 specification*](http://www.opengl.org/documentation/specs/glu/glu1_3.pdf) -### 9.2. External links +### 9.2. External links * [GLM on stackoverflow](http://stackoverflow.com/search?q=GLM) -### 9.3. Projects using GLM +### 9.3. Projects using GLM ***[Leo’s Forture](http://www.leosfortune.com/) *** @@ -1357,7 +1357,7 @@ LibreOffice includes several applications that make it the most powerful Free an [***Are you using GLM in a project?***](mailto:glm@g-truc.net) -### 9.4. Tutorials using GLM +### 9.4. Tutorials using GLM * [Sascha Willems' Vulkan examples](https://github.com/SaschaWillems/Vulkan), Examples and demos for the new Vulkan API * [VKTS](https://github.com/McNopper/Vulkan) Vulkan examples using VulKan ToolS (VKTS) @@ -1375,7 +1375,7 @@ LibreOffice includes several applications that make it the most powerful Free an * [Learn OpenGL](mailto:http://learnopengl.com/), OpenGL tutorial ** [Are you using GLM in a tutorial?](mailto:glm@g-truc.net)* -### 9.5. Equivalent for other languages +### 9.5. Equivalent for other languages * [*GlmSharp*](https://github.com/Philip-Trettner/GlmSharp): Open-source semi-generated GLM-flavored math library for .NET/C\#. * [glm-js](https://github.com/humbletim/glm-js): JavaScript adaptation of the OpenGL Mathematics (GLM) C++ library interfaces @@ -1387,14 +1387,14 @@ LibreOffice includes several applications that make it the most powerful Free an * [glm-rs](https://github.com/dche/glm-rs): GLSL mathematics for Rust programming language * [glmpython](https://github.com/Queatz/glmpython): GLM math library for Python -### 9.6. Alternatives to GLM +### 9.6. Alternatives to GLM * [*CML*](http://cmldev.net/): The CML (Configurable Math Library) is a free C++ math library for games and graphics. * [*Eigen*](http://eigen.tuxfamily.org/): A more heavy weight math library for general linear algebra in C++. * [*glhlib*](http://glhlib.sourceforge.net/): A much more than glu C library. * Are you using or developing an alternative library to GLM? -### 9.7. Acknowledgements +### 9.7. Acknowledgements GLM is developed and maintained by [*Christophe Riccio*](http://www.g-truc.net) but many contributors have made this project what it is.