Skip to content

tr_sky: clear color buffer when fastsky is enabled, do not clear screen by default #473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/engine/renderer/tr_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
backEndData_t *backEndData[ SMP_FRAMES ];
backEndState_t backEnd;

static Cvar::Cvar<bool> r_clear( "r_clear", "Clear screen before painting over it on every frame", Cvar::NONE, false );
Cvar::Cvar<bool> r_fastsky( "r_fastsky", "Clear sky instead of drawing it", Cvar::NONE, false );

void GL_Bind( image_t *image )
{
int texnum;
Expand Down Expand Up @@ -5622,8 +5625,8 @@ const RenderCommand *ClearBufferCommand::ExecuteSelf( ) const
// ensures that depth writes are enabled for the depth clear
GL_State( GLS_DEFAULT );

// clear relevant buffers
if ( r_clear->integer ) {
// Clear relevant buffers, r_fastsky always require clearing.
if ( r_clear.Get() || r_fastsky.Get() ) {
clearBits |= GL_COLOR_BUFFER_BIT;
}

Expand Down
5 changes: 0 additions & 5 deletions src/engine/renderer/tr_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

cvar_t *r_measureOverdraw;

cvar_t *r_fastsky;

cvar_t *r_lodBias;
cvar_t *r_lodScale;

Expand Down Expand Up @@ -138,7 +136,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
cvar_t *r_ignoreMaterialMaxDimension;
cvar_t *r_replaceMaterialMinDimensionIfPresentWithMaxDimension;
cvar_t *r_finish;
cvar_t *r_clear;
cvar_t *r_textureMode;
cvar_t *r_offsetFactor;
cvar_t *r_offsetUnits;
Expand Down Expand Up @@ -1118,7 +1115,6 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
r_znear = Cvar_Get( "r_znear", "3", CVAR_CHEAT );
r_zfar = Cvar_Get( "r_zfar", "0", CVAR_CHEAT );
r_checkGLErrors = Cvar_Get( "r_checkGLErrors", "-1", 0 );
r_fastsky = Cvar_Get( "r_fastsky", "0", CVAR_ARCHIVE );
r_finish = Cvar_Get( "r_finish", "0", CVAR_CHEAT );
r_textureMode = Cvar_Get( "r_textureMode", "GL_LINEAR_MIPMAP_LINEAR", CVAR_ARCHIVE );
r_gamma = Cvar_Get( "r_gamma", "1.0", CVAR_ARCHIVE );
Expand Down Expand Up @@ -1183,7 +1179,6 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
r_logFile = Cvar_Get( "r_logFile", "0", CVAR_CHEAT );
r_debugSurface = Cvar_Get( "r_debugSurface", "0", CVAR_CHEAT );
r_nobind = Cvar_Get( "r_nobind", "0", CVAR_CHEAT );
r_clear = Cvar_Get( "r_clear", "1", 0 );
r_offsetFactor = Cvar_Get( "r_offsetFactor", "-1", CVAR_CHEAT );
r_offsetUnits = Cvar_Get( "r_offsetUnits", "-2", CVAR_CHEAT );

Expand Down
4 changes: 1 addition & 3 deletions src/engine/renderer/tr_local.h
Original file line number Diff line number Diff line change
Expand Up @@ -2864,7 +2864,7 @@ enum class dynamicLightRenderer_t { LEGACY, TILED };
extern cvar_t *r_ambientScale;
extern cvar_t *r_lightScale;

extern cvar_t *r_fastsky; // controls whether sky should be cleared or drawn
extern Cvar::Cvar<bool> r_fastsky; // Controls whether sky should be cleared or drawn.
extern Cvar::Range<Cvar::Cvar<int>> r_dynamicLightRenderer;
extern Cvar::Cvar<bool> r_dynamicLight;
extern Cvar::Cvar<bool> r_staticLight;
Expand Down Expand Up @@ -2932,8 +2932,6 @@ enum class dynamicLightRenderer_t { LEGACY, TILED };

extern cvar_t *r_logFile; // number of frames to emit GL logs

extern cvar_t *r_clear; // force screen clear every frame

extern Cvar::Range<Cvar::Cvar<int>> r_shadows;
extern cvar_t *r_softShadows;
extern cvar_t *r_softShadowsPP;
Expand Down
2 changes: 1 addition & 1 deletion src/engine/renderer/tr_sky.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ void Tess_StageIteratorSky()

tr.drawingSky = false;

if ( r_fastsky->integer )
if ( r_fastsky.Get() )
{
return;
}
Expand Down