mirror of
https://bitbucket.org/CPMADevs/cnq3
synced 2025-04-19 07:51:24 +00:00
fixed r_fullbright not being used and made it unlatched
removed the superfluous calls to GL_TexEnv for r_lightmap
This commit is contained in:
parent
f9fbe4797f
commit
37ef941ac2
5 changed files with 22 additions and 17 deletions
|
@ -1,6 +1,8 @@
|
|||
|
||||
DD Mmm 17 - 1.49
|
||||
|
||||
fix: r_fullbright is no longer latched and actually does its job
|
||||
|
||||
fix: r_lightmap is now archived and actually does its job
|
||||
|
||||
add: r_greyscale to control how monochromatic the final image looks
|
||||
|
|
|
@ -185,23 +185,35 @@ static qbool GL2_DynLights_MultitextureStage( int stage )
|
|||
const qbool lightmapOnly = r_lightmap->integer && (pStage->type == ST_LIGHTMAP || pPrevStage->type == ST_LIGHTMAP);
|
||||
|
||||
if ( lightmapOnly ) {
|
||||
const int prevEnv = glState.texEnv[glState.currenttmu];
|
||||
GL_TexEnv( GL_REPLACE );
|
||||
if ( pStage->type == ST_LIGHTMAP ) {
|
||||
R_BindAnimatedImage( &pStage->bundle );
|
||||
R_ComputeTexCoords( pStage, svarsMT );
|
||||
qglTexCoordPointer( 2, GL_FLOAT, 0, svarsMT.texcoords );
|
||||
}
|
||||
qglDrawElements( GL_TRIANGLES, tess.numIndexes, GL_INDEX_TYPE, tess.indexes );
|
||||
GL_TexEnv( prevEnv );
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
if ( r_fullbright->integer ) {
|
||||
if ( pStage->type == ST_LIGHTMAP ) {
|
||||
Com_Memset( tess.svars.colors, tr.identityLightByte, tess.numVertexes * 4 );
|
||||
qglDrawElements( GL_TRIANGLES, tess.numIndexes, GL_INDEX_TYPE, tess.indexes );
|
||||
return qfalse;
|
||||
} else if ( pPrevStage->type == ST_LIGHTMAP ) {
|
||||
Com_Memset( tess.svars.colors, tr.identityLightByte, tess.numVertexes * 4 );
|
||||
R_BindAnimatedImage( &pStage->bundle );
|
||||
R_ComputeTexCoords( pStage, svarsMT );
|
||||
qglTexCoordPointer( 2, GL_FLOAT, 0, svarsMT.texcoords );
|
||||
qglDrawElements( GL_TRIANGLES, tess.numIndexes, GL_INDEX_TYPE, tess.indexes );
|
||||
return qfalse;
|
||||
}
|
||||
}
|
||||
|
||||
GL_SelectTexture( 1 );
|
||||
qglEnable( GL_TEXTURE_2D );
|
||||
GL_TexEnv( pStage->mtEnv );
|
||||
R_BindAnimatedImage( &pStage->bundle );
|
||||
|
||||
|
||||
R_ComputeTexCoords( pStage, svarsMT );
|
||||
qglEnableClientState( GL_TEXTURE_COORD_ARRAY );
|
||||
qglTexCoordPointer( 2, GL_FLOAT, 0, svarsMT.texcoords );
|
||||
|
|
|
@ -498,8 +498,6 @@ static void R_Register()
|
|||
r_height = ri.Cvar_Get( "r_height", "600", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_customaspect = ri.Cvar_Get( "r_customaspect", "1.333", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_vertexLight = ri.Cvar_Get( "r_vertexLight", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_fullbright = ri.Cvar_Get( "r_fullbright", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_lightmap = ri.Cvar_Get( "r_lightmap", "0", CVAR_ARCHIVE );
|
||||
r_subdivisions = ri.Cvar_Get( "r_subdivisions", "4", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
#ifdef USE_R_SMP
|
||||
r_smp = ri.Cvar_Get( "r_smp", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
|
@ -536,6 +534,8 @@ static void R_Register()
|
|||
#endif
|
||||
r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE );
|
||||
r_greyscale = ri.Cvar_Get( "r_greyscale", "0", CVAR_ARCHIVE );
|
||||
r_lightmap = ri.Cvar_Get( "r_lightmap", "0", CVAR_ARCHIVE );
|
||||
r_fullbright = ri.Cvar_Get( "r_fullbright", "0", CVAR_ARCHIVE );
|
||||
|
||||
r_ambientScale = ri.Cvar_Get( "r_ambientScale", "0.6", CVAR_CHEAT );
|
||||
r_directedScale = ri.Cvar_Get( "r_directedScale", "1", CVAR_CHEAT );
|
||||
|
|
|
@ -960,6 +960,8 @@ extern cvar_t *r_displayRefresh; // optional display refresh option
|
|||
extern cvar_t *r_intensity;
|
||||
extern cvar_t *r_gamma;
|
||||
extern cvar_t *r_greyscale;
|
||||
extern cvar_t *r_lightmap; // render lightmaps only
|
||||
extern cvar_t *r_fullbright; // avoid lightmap pass
|
||||
|
||||
extern cvar_t *r_ext_max_anisotropy;
|
||||
extern cvar_t *r_msaa;
|
||||
|
@ -974,8 +976,6 @@ extern cvar_t *r_finish;
|
|||
extern cvar_t *r_swapInterval;
|
||||
extern cvar_t *r_textureMode;
|
||||
|
||||
extern cvar_t *r_fullbright; // avoid lightmap pass
|
||||
extern cvar_t *r_lightmap; // render lightmaps only
|
||||
extern cvar_t *r_vertexLight; // vertex lighting mode for better performance
|
||||
extern cvar_t *r_uiFullScreen; // ui is running fullscreen
|
||||
|
||||
|
|
|
@ -2009,15 +2009,6 @@ static shader_t* FinishShader()
|
|||
|
||||
shader.numStages = stage;
|
||||
|
||||
// fix up any stages that we want fullbright
|
||||
if ( r_fullbright->integer && (shader.lightmapIndex == LIGHTMAP_BY_VERTEX) ) {
|
||||
for ( int i = 0; i < shader.numStages; ++i ) {
|
||||
if (stages[i].rgbGen == CGEN_EXACT_VERTEX) {
|
||||
stages[i].rgbGen = CGEN_IDENTITY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FindLightingStages();
|
||||
|
||||
CollapseStages();
|
||||
|
|
Loading…
Reference in a new issue