mirror of https://bitbucket.org/CPMADevs/cnq3
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
|
@ -1,6 +1,8 @@
|
||||||
|
|
||||||
DD Mmm 17 - 1.49
|
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
|
fix: r_lightmap is now archived and actually does its job
|
||||||
|
|
||||||
add: r_greyscale to control how monochromatic the final image looks
|
add: r_greyscale to control how monochromatic the final image looks
|
||||||
|
|
|
@ -185,18 +185,30 @@ static qbool GL2_DynLights_MultitextureStage( int stage )
|
||||||
const qbool lightmapOnly = r_lightmap->integer && (pStage->type == ST_LIGHTMAP || pPrevStage->type == ST_LIGHTMAP);
|
const qbool lightmapOnly = r_lightmap->integer && (pStage->type == ST_LIGHTMAP || pPrevStage->type == ST_LIGHTMAP);
|
||||||
|
|
||||||
if ( lightmapOnly ) {
|
if ( lightmapOnly ) {
|
||||||
const int prevEnv = glState.texEnv[glState.currenttmu];
|
|
||||||
GL_TexEnv( GL_REPLACE );
|
|
||||||
if ( pStage->type == ST_LIGHTMAP ) {
|
if ( pStage->type == ST_LIGHTMAP ) {
|
||||||
R_BindAnimatedImage( &pStage->bundle );
|
R_BindAnimatedImage( &pStage->bundle );
|
||||||
R_ComputeTexCoords( pStage, svarsMT );
|
R_ComputeTexCoords( pStage, svarsMT );
|
||||||
qglTexCoordPointer( 2, GL_FLOAT, 0, svarsMT.texcoords );
|
qglTexCoordPointer( 2, GL_FLOAT, 0, svarsMT.texcoords );
|
||||||
}
|
}
|
||||||
qglDrawElements( GL_TRIANGLES, tess.numIndexes, GL_INDEX_TYPE, tess.indexes );
|
qglDrawElements( GL_TRIANGLES, tess.numIndexes, GL_INDEX_TYPE, tess.indexes );
|
||||||
GL_TexEnv( prevEnv );
|
|
||||||
return qtrue;
|
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 );
|
GL_SelectTexture( 1 );
|
||||||
qglEnable( GL_TEXTURE_2D );
|
qglEnable( GL_TEXTURE_2D );
|
||||||
GL_TexEnv( pStage->mtEnv );
|
GL_TexEnv( pStage->mtEnv );
|
||||||
|
|
|
@ -498,8 +498,6 @@ static void R_Register()
|
||||||
r_height = ri.Cvar_Get( "r_height", "600", CVAR_ARCHIVE | CVAR_LATCH );
|
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_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_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 );
|
r_subdivisions = ri.Cvar_Get( "r_subdivisions", "4", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
#ifdef USE_R_SMP
|
#ifdef USE_R_SMP
|
||||||
r_smp = ri.Cvar_Get( "r_smp", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_smp = ri.Cvar_Get( "r_smp", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
|
@ -536,6 +534,8 @@ static void R_Register()
|
||||||
#endif
|
#endif
|
||||||
r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE );
|
r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE );
|
||||||
r_greyscale = ri.Cvar_Get( "r_greyscale", "0", 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_ambientScale = ri.Cvar_Get( "r_ambientScale", "0.6", CVAR_CHEAT );
|
||||||
r_directedScale = ri.Cvar_Get( "r_directedScale", "1", 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_intensity;
|
||||||
extern cvar_t *r_gamma;
|
extern cvar_t *r_gamma;
|
||||||
extern cvar_t *r_greyscale;
|
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_ext_max_anisotropy;
|
||||||
extern cvar_t *r_msaa;
|
extern cvar_t *r_msaa;
|
||||||
|
@ -974,8 +976,6 @@ extern cvar_t *r_finish;
|
||||||
extern cvar_t *r_swapInterval;
|
extern cvar_t *r_swapInterval;
|
||||||
extern cvar_t *r_textureMode;
|
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_vertexLight; // vertex lighting mode for better performance
|
||||||
extern cvar_t *r_uiFullScreen; // ui is running fullscreen
|
extern cvar_t *r_uiFullScreen; // ui is running fullscreen
|
||||||
|
|
||||||
|
|
|
@ -2009,15 +2009,6 @@ static shader_t* FinishShader()
|
||||||
|
|
||||||
shader.numStages = stage;
|
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();
|
FindLightingStages();
|
||||||
|
|
||||||
CollapseStages();
|
CollapseStages();
|
||||||
|
|
Loading…
Reference in New Issue