Merge branch '0.9.5'

This commit is contained in:
Christophe Riccio 2014-08-31 22:28:21 -04:00
commit 90acd7236d
4 changed files with 20 additions and 10 deletions

View File

@ -713,7 +713,9 @@ namespace detail
std::numeric_limits<genType>::is_iec559, std::numeric_limits<genType>::is_iec559,
"'isnan' only accept floating-point inputs"); "'isnan' only accept floating-point inputs");
# if(GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL)) # if(GLM_LANG & GLM_LANG_CXX11_FLAG)
return std::isnan(x);
# elif(GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL))
return _isnan(x) != 0; return _isnan(x) != 0;
# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) # elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG))
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L)
@ -780,11 +782,11 @@ namespace detail
GLM_FUNC_QUALIFIER bool isinf( GLM_FUNC_QUALIFIER bool isinf(
genType const & x) genType const & x)
{ {
GLM_STATIC_ASSERT( GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isinf' only accept floating-point inputs");
std::numeric_limits<genType>::is_iec559,
"'isinf' only accept floating-point inputs");
# if(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)) # if(GLM_LANG & GLM_LANG_CXX11_FLAG)
return std::isinf(x);
# elif(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC))
return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF;
# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) # elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG))
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L)

View File

@ -204,7 +204,7 @@ namespace glm
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafterf(x, FLT_MAX); return detail::nextafterf(x, FLT_MAX);
# elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID) # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
return _nextafterf(x, FLT_MAX); return __builtin_nextafterf(x, FLT_MAX);
# else # else
return nextafterf(x, FLT_MAX); return nextafterf(x, FLT_MAX);
# endif # endif
@ -217,6 +217,8 @@ namespace glm
return std::nextafter(x, std::numeric_limits<double>::max()); return std::nextafter(x, std::numeric_limits<double>::max());
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafter(x, std::numeric_limits<double>::max()); return detail::nextafter(x, std::numeric_limits<double>::max());
# elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
return __builtin_nextafter(x, FLT_MAX);
# else # else
return nextafter(x, DBL_MAX); return nextafter(x, DBL_MAX);
# endif # endif
@ -238,7 +240,7 @@ namespace glm
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafterf(x, FLT_MIN); return detail::nextafterf(x, FLT_MIN);
# elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID) # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
return _nextafterf(x, FLT_MIN); return __builtin_nextafterf(x, FLT_MIN);
# else # else
return nextafterf(x, FLT_MIN); return nextafterf(x, FLT_MIN);
# endif # endif
@ -248,8 +250,10 @@ namespace glm
{ {
# if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID)) # if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID))
return std::nextafter(x, std::numeric_limits<double>::min()); return std::nextafter(x, std::numeric_limits<double>::min());
# elif((GLM_PLATFORM & GLM_PLATFORM_ANDROID) || (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return _nextafter(x, DBL_MIN); return _nextafter(x, DBL_MIN);
# elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
return __builtin_nextafter(x, DBL_MIN);
# else # else
return nextafter(x, DBL_MIN); return nextafter(x, DBL_MIN);
# endif # endif

View File

@ -7,6 +7,8 @@
// File : glm/gtx/compatibility.inl // File : glm/gtx/compatibility.inl
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
#include <limits>
namespace glm namespace glm
{ {
// isfinite // isfinite
@ -21,7 +23,7 @@ namespace glm
# elif(GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID) # elif(GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID)
return _isfinite(x) != 0; return _isfinite(x) != 0;
# else # else
return isfinite(x) != 0; return x >= std::numeric_limits<genType>::min() && x <= std::numeric_limits<genType>::max();
# endif # endif
} }

View File

@ -50,9 +50,11 @@ GLM 0.9.6.0: 2014-XX-XX
================================================================================ ================================================================================
GLM 0.9.5.5: 2014-XX-XX GLM 0.9.5.5: 2014-XX-XX
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- Fixed std::nextafter not supported with C++11 on Android #213 - Fixed std::nextafter not supported with C++11 on Android #217
- Fixed missing value_type for dual quaternion - Fixed missing value_type for dual quaternion
- Fixed return type of dual quaternion length - Fixed return type of dual quaternion length
- Fixed infinite loop in isfinite function with GCC #221
- Rely on C++11 to implement isinf and isnan
================================================================================ ================================================================================
GLM 0.9.5.4: 2014-06-21 GLM 0.9.5.4: 2014-06-21