mirror of
https://github.com/UberGames/lilium-voyager.git
synced 2024-11-10 14:41:42 +00:00
* Added Q_isnan for NaN tests with -ffast-math
* Fixed UT/OpenAL work around
This commit is contained in:
parent
73e4d33d3b
commit
58c8175024
3 changed files with 27 additions and 9 deletions
|
@ -492,15 +492,12 @@ S_AL_SanitiseVector
|
|||
#define S_AL_SanitiseVector(v) _S_AL_SanitiseVector(v,__LINE__)
|
||||
static void _S_AL_SanitiseVector( vec3_t v, int line )
|
||||
{
|
||||
// NaNs can't be compared for equality, thus always fail this test
|
||||
if( v[ 0 ] == v[ 0 ] &&
|
||||
v[ 1 ] == v[ 1 ] &&
|
||||
v[ 2 ] == v[ 2 ] )
|
||||
return;
|
||||
|
||||
Com_DPrintf( S_COLOR_YELLOW "WARNING: vector with one or more NaN components "
|
||||
"being passed to OpenAL at %s:%d -- zeroing\n", __FILE__, line );
|
||||
VectorClear( v );
|
||||
if( Q_isnan( v[ 0 ] ) || Q_isnan( v[ 1 ] ) || Q_isnan( v[ 2 ] ) )
|
||||
{
|
||||
Com_DPrintf( S_COLOR_YELLOW "WARNING: vector with one or more NaN components "
|
||||
"being passed to OpenAL at %s:%d -- zeroing\n", __FILE__, line );
|
||||
VectorClear( v );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1252,4 +1252,24 @@ void PerpendicularVector( vec3_t dst, const vec3_t src )
|
|||
VectorNormalize( dst );
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
Q_isnan
|
||||
|
||||
Don't pass doubles to this
|
||||
================
|
||||
*/
|
||||
int Q_isnan( float x )
|
||||
{
|
||||
union
|
||||
{
|
||||
float f;
|
||||
unsigned int i;
|
||||
} t;
|
||||
|
||||
t.f = x;
|
||||
t.i &= 0x7FFFFFFF;
|
||||
t.i = 0x7F800000 - t.i;
|
||||
|
||||
return (int)( (unsigned int)t.i >> 31 );
|
||||
}
|
||||
|
|
|
@ -557,6 +557,7 @@ void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up );
|
|||
void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]);
|
||||
void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
|
||||
void PerpendicularVector( vec3_t dst, const vec3_t src );
|
||||
int Q_isnan( float x );
|
||||
|
||||
|
||||
//=============================================
|
||||
|
|
Loading…
Reference in a new issue