Moved floatFlip from bgfx to bx.

This commit is contained in:
Branimir Karadžić
2017-11-07 20:30:35 -08:00
parent bd1279e4d2
commit ce5808f572
2 changed files with 15 additions and 0 deletions

View File

@@ -45,6 +45,17 @@ namespace bx
return u.f;
}
inline uint32_t floatFlip(uint32_t _value)
{
// Reference:
// http://archive.fo/2012.12.08-212402/http://stereopsis.com/radix.html
const uint32_t tmp0 = uint32_sra(_value, 31);
const uint32_t tmp1 = uint32_neg(tmp0);
const uint32_t mask = uint32_or(tmp1, 0x80000000);
const uint32_t result = uint32_xor(_value, mask);
return result;
}
inline bool isNan(float _f)
{
const uint32_t tmp = floatToBits(_f) & INT32_MAX;

View File

@@ -9,6 +9,7 @@
#define BX_FPU_MATH_H_HEADER_GUARD
#include "bx.h"
#include "uint32_t.h"
namespace bx
{
@@ -61,6 +62,9 @@ namespace bx
///
double bitsToDouble(uint64_t _a);
///
uint32_t floatFlip(uint32_t _value);
///
bool isNan(float _f);