diff --git a/manual.md b/manual.md index e5b47a43..7cacf33e 100644 --- a/manual.md +++ b/manual.md @@ -329,7 +329,7 @@ precision mediump int; precision highp float; ``` -To use the default precision functionality, GLM provides some defines that need to add before any include of glm.hpp: +To use the default precision functionality, GLM provides some defines that need to added before any include of `glm.hpp`: ```cpp #define GLM_PRECISION_MEDIUMP_INT @@ -339,27 +339,27 @@ To use the default precision functionality, GLM provides some defines that need Available defines for floating point types (glm::vec\*, glm::mat\*): -GLM\_PRECISION\_LOWP\_FLOAT: Low precision\ -GLM\_PRECISION\_MEDIUMP\_FLOAT: Medium precision\ -GLM\_PRECISION\_HIGHP\_FLOAT: High precision (default) +* GLM\_PRECISION\_LOWP\_FLOAT: Low precision +* GLM\_PRECISION\_MEDIUMP\_FLOAT: Medium precision +* GLM\_PRECISION\_HIGHP\_FLOAT: High precision (default) Available defines for floating point types (glm::dvec\*, glm::dmat\*): -GLM\_PRECISION\_LOWP\_DOUBLE: Low precision\ -GLM\_PRECISION\_MEDIUMP\_DOUBLE: Medium precision\ -GLM\_PRECISION\_HIGHP\_DOUBLE: High precision (default) +* GLM\_PRECISION\_LOWP\_DOUBLE: Low precision +* GLM\_PRECISION\_MEDIUMP\_DOUBLE: Medium precision +* GLM\_PRECISION\_HIGHP\_DOUBLE: High precision (default) Available defines for signed integer types (glm::ivec\*): -GLM\_PRECISION\_LOWP\_INT: Low precision -GLM\_PRECISION\_MEDIUMP\_INT: Medium precision -GLM\_PRECISION\_HIGHP\_INT: High precision (default) +* GLM\_PRECISION\_LOWP\_INT: Low precision +* GLM\_PRECISION\_MEDIUMP\_INT: Medium precision +* GLM\_PRECISION\_HIGHP\_INT: High precision (default) Available defines for unsigned integer types (glm::uvec\*): -GLM\_PRECISION\_LOWP\_UINT: Low precision -GLM\_PRECISION\_MEDIUMP\_UINT: Medium precision -GLM\_PRECISION\_HIGHP\_UINT: High precision (default) +* 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 @@ -464,7 +464,7 @@ Additionally, GLM defines the type glm::length\_t to identify length() returned void foo(vec4 const & v) { - glm::size_t Length = v.length(); + glm::length_t Length = v.length(); ... } ``` @@ -472,7 +472,7 @@ void foo(vec4 const & v) ### 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. +This behavior can be disabled at compilation time by define GLM\_FORCE\_NO\_CTOR\_INIT before any inclusion of <glm/glm.hpp> or other GLM include. GLM default behavior: @@ -494,7 +494,7 @@ GLM behavior using GLM\_FORCE\_NO\_CTOR\_INIT: void foo() { - glm::vec4 v; // v is fill with garbage + glm::vec4 v; // v is filled with garbage ... } ``` @@ -564,7 +564,7 @@ GLM 0.9.8 introduced GLM\_FORCE\_UNRESTRICTED\_GENTYPE define to relax this rest #define GLM_FORCE_UNRESTRICTED_GENTYPE #include -#include "half.hpp" // Define “half” class with equivalent behavior than “float” +#include "half.hpp" // Define “half” class with behavior equivalent to “float” typedef glm::vec<4, half> my_hvec4; ``` @@ -859,8 +859,8 @@ void foo() glm::vec4 v(0.0f); glm::mat4 m(1.0f); ... - glVertex3fv(&v\[0\]); - glLoadMatrixfv(&m\[0\]\[0\]); + glVertex3fv(&v[0]); + glLoadMatrixfv(&m[0][0]); } ``` @@ -897,7 +897,7 @@ glm::dmat4 glm::rotate(glm::dmat4 const& m, double angle, glm::dvec3 const& axis From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[***glScale{f, d}: ***](http://www.opengl.org/sdk/docs/man2/xhtml/glScale.xml) +[***glScale{f, d}:***](http://www.opengl.org/sdk/docs/man2/xhtml/glScale.xml) ```cpp glm::mat4 glm::scale(glm::mat4 const& m, glm::vec3 const& factors); @@ -924,7 +924,7 @@ glm::dmat4(1.0) or glm::dmat4(); From GLM core library: <glm/glm.hpp> -[***glMultMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml) +[***glMultMatrix{f, d}:***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml) ```cpp glm::mat4() * glm::mat4(); @@ -933,7 +933,7 @@ glm::dmat4() * glm::dmat4(); From GLM core library: <glm/glm.hpp> -[***glLoadTransposeMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrix.xml) +[***glLoadTransposeMatrix{f, d}:***](https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrix.xml) ```cpp glm::transpose(glm::mat4()); @@ -942,7 +942,7 @@ glm::transpose(glm::dmat4()); From GLM core library: <glm/glm.hpp> -[***glMultTransposeMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrix.xml) +[***glMultTransposeMatrix{f, d}:***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrix.xml) ```cpp glm::mat4() * glm::transpose(glm::mat4()); @@ -960,7 +960,7 @@ glm::dmat4 glm::frustum(double left, double right, double bottom, double top, do From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[***glOrtho: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml) +[***glOrtho:***](https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml) ```cpp glm::mat4 glm::ortho(float left, float right, float bottom, float top, float zNear, float zFar); @@ -971,7 +971,7 @@ From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> ### 5.2. GLM replacements for GLU functions -[***gluLookAt: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml) +[***gluLookAt:***](https://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml) ```cpp glm::mat4 glm::lookAt(glm::vec3 const& eye, glm::vec3 const& center, glm::vec3 const& up); @@ -980,7 +980,7 @@ glm::dmat4 glm::lookAt(glm::dvec3 const& eye, glm::dvec3 const& center, glm::dve From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[***gluOrtho2D: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluOrtho2D.xml) +[***gluOrtho2D:***](https://www.opengl.org/sdk/docs/man2/xhtml/gluOrtho2D.xml) ```cpp glm::mat4 glm::ortho(float left, float right, float bottom, float top); @@ -989,7 +989,7 @@ glm::dmat4 glm::ortho(double left, double right, double bottom, double top); From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[***gluPerspective: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluPerspective.xml) +[***gluPerspective:***](https://www.opengl.org/sdk/docs/man2/xhtml/gluPerspective.xml) ```cpp glm::mat4 perspective(float fovy, float aspect, float zNear, float zFar); @@ -1009,7 +1009,7 @@ glm::dmat4 pickMatrix(glm::dvec2 const& center, glm::dvec2 const& delta, glm::iv From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[**gluProject:**](http://www.opengl.org/sdk/docs/man2/xhtml/gluProject.xml) +[***gluProject:***](http://www.opengl.org/sdk/docs/man2/xhtml/gluProject.xml) ```cpp glm::vec3 project(glm::vec3 const& obj, glm::mat4 const& model, glm::mat4 const & proj, glm::ivec4 const& viewport); @@ -1018,7 +1018,7 @@ glm::dvec3 project(glm::dvec3 const& obj, glm::dmat4 const & model, glm::dmat4 c From GLM\_GTC\_matrix\_transform extension: <glm/gtc/matrix\_transform.hpp> -[***gluUnProject: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluUnProject.xml) +[***gluUnProject:***](https://www.opengl.org/sdk/docs/man2/xhtml/gluUnProject.xml) ```cpp glm::vec3 unProject(glm::vec3 const& win, glm::mat4 const& model, glm::mat4 const& proj, glm::ivec4 const& viewport); @@ -1090,7 +1090,7 @@ 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. +Stating with GLM 0.9.9, to use experimental extensions, an application must define GLM_ENABLE_EXPERIMENTAL. ### 7.5. Where can I ask my questions? @@ -1132,7 +1132,7 @@ the [link](http://www.g-truc.net/post-0693.html#menu). ### 7.12. Windows headers cause build errors... Some Windows headers define min and max as macros which may cause compatibility with third party libraries such as GLM. -It is highly recommanded to [define NOMINMAX](http://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c) before including Windows headers to workaround this issue. +It is highly recommended to [define NOMINMAX](http://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c) before including Windows headers to workaround this issue. To workaround the incompatibility with these macros, GLM will systematically undef these macros if they are defined. --- @@ -1284,7 +1284,7 @@ glm::vec3 lighting(intersection const& Intersection, material const& Material, l ### 9.3. Projects using GLM -***[Leo’s Forture](http://www.leosfortune.com/) *** +***[Leo’s Fortune](http://www.leosfortune.com/)*** Leo’s Fortune is a platform adventure game where you hunt down the cunning and mysterious thief that stole your gold. Available on PS4, Xbox One, PC, Mac, iOS and Android. @@ -1370,7 +1370,7 @@ LibreOffice includes several applications that make it the most powerful Free an * [open.gl](https://open.gl/), OpenGL tutorial * [c-jump](http://www.c-jump.com/bcc/common/Talk3/Math/GLM/GLM.html), GLM tutorial * [Learn OpenGL](http://learnopengl.com/), OpenGL tutorial -** [Are you using GLM in a tutorial?](mailto:glm@g-truc.net)* +* [***Are you using GLM in a tutorial?***](mailto:glm@g-truc.net) ### 9.5. Equivalent for other languages