Browse Source

Improved EXT extensions documentation

Christophe Riccio 7 years ago
parent
commit
b40c557f25
2 changed files with 26 additions and 90 deletions
  1. 0 77
      glm/ext/scalar_double.hpp
  2. 26 13
      manual.md

+ 0 - 77
glm/ext/scalar_double.hpp

@@ -1,77 +0,0 @@
-/// @ref ext_scalar_double
-/// @file glm/ext/scalar_double.hpp
-///
-/// @see core (dependence)
-///
-/// @defgroup ext_scalar_double GLM_EXT_scalar_double
-/// @ingroup ext
-///
-/// Include <glm/ext/scalar_double.hpp> to use the features of this extension.
-///
-/// Exposes double scalar type.
-
-#pragma once
-
-#include "setup.hpp"
-
-namespace glm{
-namespace detail
-{
-	typedef float				float32;
-
-#	ifndef GLM_FORCE_SINGLE_ONLY
-		typedef double			float64;
-#	endif//GLM_FORCE_SINGLE_ONLY
-}//namespace detail
-
-	typedef float				lowp_float_t;
-	typedef float				mediump_float_t;
-	typedef double				highp_float_t;
-
-	/// @addtogroup core_precision
-	/// @{
-
-	/// Low qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef lowp_float_t		lowp_float;
-
-	/// Medium qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef mediump_float_t		mediump_float;
-
-	/// High qualifier floating-point numbers.
-	/// There is no guarantee on the actual qualifier.
-	///
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
-	/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
-	typedef highp_float_t		highp_float;
-
-#if GLM_CONFIG_PRECISION_FLOAT == GLM_HIGHP
-	typedef highp_float			float_t;
-#elif GLM_CONFIG_PRECISION_FLOAT == GLM_MEDIUMP
-	typedef mediump_float		float_t;
-#elif GLM_CONFIG_PRECISION_FLOAT == GLM_LOWP
-	typedef lowp_float			float_t;
-#endif
-
-	typedef float				float32;
-
-#	ifndef GLM_FORCE_SINGLE_ONLY
-		typedef double			float64;
-#	endif//GLM_FORCE_SINGLE_ONLY
-
-////////////////////
-// check type sizes
-#	ifndef GLM_FORCE_SINGLE_ONLY
-		GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform");
-#	endif//GLM_FORCE_SINGLE_ONLY
-
-	/// @}
-
-}//namespace glm

+ 26 - 13
manual.md

@@ -687,21 +687,15 @@ However, defining `GLM_FORCE_UNRESTRICTED_GENTYPE` is not compatible with `GLM_F
 
 
 ### <a name="section3_1"></a> 3.1. Scalar types
 ### <a name="section3_1"></a> 3.1. Scalar types
 
 
-#### 3.1.1. GLM_EXT_scalar_float_sized
+#### 3.1.1. GLM_EXT_scalar_int_sized
 
 
-TODO
-
-Include `<glm/ext/scalar_float_sized.hpp>` to use these features.
-
-#### 3.1.2. GLM_EXT_scalar_int_sized
-
-TODO
+This extension exposes sized and signed integer types.
 
 
 Include `<glm/ext/scalar_int_sized.hpp>` to use these features.
 Include `<glm/ext/scalar_int_sized.hpp>` to use these features.
 
 
-#### 3.1.3. GLM_EXT_scalar_uint_sized
+#### 3.1.2. GLM_EXT_scalar_uint_sized
 
 
-TODO
+This extension exposes sized and unsigned integer types.
 
 
 Include `<glm/ext/scalar_uint_sized.hpp>` to use these features.
 Include `<glm/ext/scalar_uint_sized.hpp>` to use these features.
 
 
@@ -709,13 +703,32 @@ Include `<glm/ext/scalar_uint_sized.hpp>` to use these features.
 
 
 #### 3.2.1. GLM_EXT_scalar_common
 #### 3.2.1. GLM_EXT_scalar_common
 
 
-TODO
+This extension exposes support for `min` and `max` functions taking more than two scalar arguments. Also, it adds `fmin` and `fmax` variants which prevents `NaN` probagation.
+
+```cpp
+#include <glm/ext/scalar_common.hpp>
+
+float PositiveMax(float const a, float const b)
+{
+    return glm::fmax(a, b, 0.0f);
+}
+```
 
 
 Include `<glm/ext/scalar_common.hpp>` to use these features.
 Include `<glm/ext/scalar_common.hpp>` to use these features.
 
 
 #### 3.2.2. GLM_EXT_scalar_relational
 #### 3.2.2. GLM_EXT_scalar_relational
 
 
-TODO
+This extension exposes `equal` and `notEqual` variants which takes an epsilon argument.
+
+```cpp
+#include <glm/ext/scalar_relational.hpp>
+
+bool myEqual(float const a, float const b)
+{
+    float const CustomEpsilon = 0.0001f;
+    return glm::equal(a, b, CustomEpsilon);
+}
+```
 
 
 Include `<glm/ext/scalar_relational.hpp>` to use these features.
 Include `<glm/ext/scalar_relational.hpp>` to use these features.
 
 
@@ -888,7 +901,7 @@ Provide a list of built-in constants.
 
 
 `<glm/gtc/constants.hpp>` need to be included to use these features.
 `<glm/gtc/constants.hpp>` need to be included to use these features.
 
 
-### <a name="section4_4"></a> 4.4. GLM_GTC_epsilon
+### <a name="section4_4"></a> 4.4. GLM\_GTC\_epsilon
 
 
 Approximate equality comparisons for floating-point numbers, possibly with a user-defined epsilon.
 Approximate equality comparisons for floating-point numbers, possibly with a user-defined epsilon.