Renderers: make sure that wave tables do not contains zero values to avoid potential division-by-zero in RB_CalcStretchTexCoords()
Code cleanup
This commit is contained in:
parent
3478d7f4be
commit
5aeab4a25f
|
@ -299,7 +299,7 @@ typedef enum {
|
|||
|
||||
typedef union {
|
||||
struct {
|
||||
unsigned r_m : 3; // direct or indirect register operand with opt.sidplacement, REX.b can extend this by 1 bit
|
||||
unsigned r_m : 3; // direct or indirect register operand with opt.displacement, REX.b can extend this by 1 bit
|
||||
unsigned r_x : 3; // register or opcode extension, REX.r can extend this by 1 bit
|
||||
unsigned mod : 2; // see mod_t
|
||||
} s;
|
||||
|
|
|
@ -1661,6 +1661,7 @@ static void R_Register( void )
|
|||
" 4 - linear filtering, preserve aspect ratio (black bars on sides)\n" );
|
||||
}
|
||||
|
||||
#define EPSILON 1e-6
|
||||
|
||||
/*
|
||||
===============
|
||||
|
@ -1680,8 +1681,8 @@ void R_Init( void ) {
|
|||
Com_Memset( &tess, 0, sizeof( tess ) );
|
||||
Com_Memset( &glState, 0, sizeof( glState ) );
|
||||
|
||||
if (sizeof(glconfig_t) != 11332)
|
||||
ri.Error( ERR_FATAL, "Mod ABI incompatible: sizeof(glconfig_t) == %u != 11332", (unsigned int) sizeof(glconfig_t));
|
||||
if ( sizeof( glconfig_t ) != 11332 )
|
||||
ri.Error( ERR_FATAL, "Mod ABI incompatible: sizeof(glconfig_t) == %u != 11332", (unsigned int) sizeof( glconfig_t ) );
|
||||
|
||||
if ( (intptr_t)tess.xyz & 15 ) {
|
||||
ri.Printf( PRINT_WARNING, "tess.xyz not 16 byte aligned\n" );
|
||||
|
@ -1691,27 +1692,33 @@ void R_Init( void ) {
|
|||
//
|
||||
// init function tables
|
||||
//
|
||||
for ( i = 0; i < FUNCTABLE_SIZE; i++ )
|
||||
{
|
||||
tr.sinTable[i] = sin( DEG2RAD( i * 360.0f / ( ( float ) ( FUNCTABLE_SIZE - 1 ) ) ) );
|
||||
tr.squareTable[i] = ( i < FUNCTABLE_SIZE/2 ) ? 1.0f : -1.0f;
|
||||
tr.sawToothTable[i] = (float)i / FUNCTABLE_SIZE;
|
||||
tr.inverseSawToothTable[i] = 1.0f - tr.sawToothTable[i];
|
||||
|
||||
if ( i < FUNCTABLE_SIZE / 2 )
|
||||
{
|
||||
if ( i < FUNCTABLE_SIZE / 4 )
|
||||
{
|
||||
tr.triangleTable[i] = ( float ) i / ( FUNCTABLE_SIZE / 4 );
|
||||
}
|
||||
else
|
||||
{
|
||||
tr.triangleTable[i] = 1.0f - tr.triangleTable[i-FUNCTABLE_SIZE / 4];
|
||||
}
|
||||
for ( i = 0; i < FUNCTABLE_SIZE; i++ ) {
|
||||
if ( i == 0 ) {
|
||||
tr.sinTable[i] = EPSILON;
|
||||
} else if ( i == (FUNCTABLE_SIZE - 1) ) {
|
||||
tr.sinTable[i] = -EPSILON;
|
||||
} else {
|
||||
tr.sinTable[i] = sin( DEG2RAD( i * 360.0f / ((float)(FUNCTABLE_SIZE - 1)) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
tr.triangleTable[i] = -tr.triangleTable[i-FUNCTABLE_SIZE/2];
|
||||
tr.squareTable[i] = (i < FUNCTABLE_SIZE / 2) ? 1.0f : -1.0f;
|
||||
if ( i == 0 ) {
|
||||
tr.sawToothTable[i] = EPSILON;
|
||||
} else {
|
||||
tr.sawToothTable[i] = (float)i / FUNCTABLE_SIZE;
|
||||
}
|
||||
tr.inverseSawToothTable[i] = 1.0f - tr.sawToothTable[i];
|
||||
if ( i < FUNCTABLE_SIZE / 2 ) {
|
||||
if ( i < FUNCTABLE_SIZE / 4 ) {
|
||||
if ( i == 0 ) {
|
||||
tr.triangleTable[i] = EPSILON;
|
||||
} else {
|
||||
tr.triangleTable[i] = (float)i / (FUNCTABLE_SIZE / 4);
|
||||
}
|
||||
} else {
|
||||
tr.triangleTable[i] = 1.0f - tr.triangleTable[i - FUNCTABLE_SIZE / 4];
|
||||
}
|
||||
} else {
|
||||
tr.triangleTable[i] = -tr.triangleTable[i - FUNCTABLE_SIZE / 2];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1704,6 +1704,7 @@ static void R_Register( void )
|
|||
#endif // USE_VULKAN
|
||||
}
|
||||
|
||||
#define EPSILON 1e-6
|
||||
|
||||
/*
|
||||
===============
|
||||
|
@ -1736,27 +1737,33 @@ void R_Init( void ) {
|
|||
//
|
||||
// init function tables
|
||||
//
|
||||
for ( i = 0; i < FUNCTABLE_SIZE; i++ )
|
||||
{
|
||||
tr.sinTable[i] = sin( DEG2RAD( i * 360.0f / ( ( float ) ( FUNCTABLE_SIZE - 1 ) ) ) );
|
||||
tr.squareTable[i] = ( i < FUNCTABLE_SIZE/2 ) ? 1.0f : -1.0f;
|
||||
tr.sawToothTable[i] = (float)i / FUNCTABLE_SIZE;
|
||||
tr.inverseSawToothTable[i] = 1.0f - tr.sawToothTable[i];
|
||||
|
||||
if ( i < FUNCTABLE_SIZE / 2 )
|
||||
{
|
||||
if ( i < FUNCTABLE_SIZE / 4 )
|
||||
{
|
||||
tr.triangleTable[i] = ( float ) i / ( FUNCTABLE_SIZE / 4 );
|
||||
}
|
||||
else
|
||||
{
|
||||
tr.triangleTable[i] = 1.0f - tr.triangleTable[i-FUNCTABLE_SIZE / 4];
|
||||
}
|
||||
for ( i = 0; i < FUNCTABLE_SIZE; i++ ) {
|
||||
if ( i == 0 ) {
|
||||
tr.sinTable[i] = EPSILON;
|
||||
} else if ( i == (FUNCTABLE_SIZE - 1) ) {
|
||||
tr.sinTable[i] = -EPSILON;
|
||||
} else {
|
||||
tr.sinTable[i] = sin( DEG2RAD( i * 360.0f / ((float)(FUNCTABLE_SIZE - 1)) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
tr.triangleTable[i] = -tr.triangleTable[i-FUNCTABLE_SIZE/2];
|
||||
tr.squareTable[i] = (i < FUNCTABLE_SIZE / 2) ? 1.0f : -1.0f;
|
||||
if ( i == 0 ) {
|
||||
tr.sawToothTable[i] = EPSILON;
|
||||
} else {
|
||||
tr.sawToothTable[i] = (float)i / FUNCTABLE_SIZE;
|
||||
}
|
||||
tr.inverseSawToothTable[i] = 1.0f - tr.sawToothTable[i];
|
||||
if ( i < FUNCTABLE_SIZE / 2 ) {
|
||||
if ( i < FUNCTABLE_SIZE / 4 ) {
|
||||
if ( i == 0 ) {
|
||||
tr.triangleTable[i] = EPSILON;
|
||||
} else {
|
||||
tr.triangleTable[i] = (float)i / (FUNCTABLE_SIZE / 4);
|
||||
}
|
||||
} else {
|
||||
tr.triangleTable[i] = 1.0f - tr.triangleTable[i - FUNCTABLE_SIZE / 4];
|
||||
}
|
||||
} else {
|
||||
tr.triangleTable[i] = -tr.triangleTable[i - FUNCTABLE_SIZE / 2];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -161,8 +161,8 @@ void SV_AddServerCommand( client_t *client, const char *cmd ) {
|
|||
Com_Printf( "===== pending server commands =====\n" );
|
||||
n = client->reliableSequence - client->reliableAcknowledge;
|
||||
for ( i = 0; i < n; i++ ) {
|
||||
const int index = client->reliableAcknowledge + 1 + i;
|
||||
Com_Printf( "cmd %5d: %s\n", i, client->reliableCommands[ index & ( MAX_RELIABLE_COMMANDS - 1 ) ] );
|
||||
const int idx = client->reliableAcknowledge + 1 + i;
|
||||
Com_Printf( "cmd %5d: %s\n", i, client->reliableCommands[ idx & ( MAX_RELIABLE_COMMANDS - 1 ) ] );
|
||||
}
|
||||
Com_Printf( "cmd %5d: %s\n", i, cmd );
|
||||
SV_DropClient( client, "Server command overflow" );
|
||||
|
|
Loading…
Reference in New Issue