Improved EXT extensions documentation

This commit is contained in:
Christophe Riccio 2018-08-30 00:16:14 +02:00
parent 65874078a2
commit b40c557f25
2 changed files with 26 additions and 90 deletions

View File

@ -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

View File

@ -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
#### 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.
#### 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.
@ -709,13 +703,32 @@ Include `<glm/ext/scalar_uint_sized.hpp>` to use these features.
#### 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.
#### 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.
@ -888,7 +901,7 @@ Provide a list of built-in constants.
`<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.