diff --git a/changelog.md b/changelog.md index 2676af7..8416627 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,6 @@ Removed cvars: * r_allowExtensions (always use extensions if available) * r_allowSoftwareGL -* r_clear * r_colorbits (use desktop color depth) * r_displayRefresh * r_dlightBacks diff --git a/src/engine/renderer/tr_backend.c b/src/engine/renderer/tr_backend.c index 6a1c103..143accf 100644 --- a/src/engine/renderer/tr_backend.c +++ b/src/engine/renderer/tr_backend.c @@ -868,8 +868,19 @@ const void *RB_DrawBuffer( const void *data ) { qglDrawBuffer( cmd->buffer ); - // VULKAN - vk_begin_frame(); + // VULKAN + vk_begin_frame(); + + // clear screen for debugging + if ( r_clear->integer ) { + qglClearColor( 1, 0, 0.5, 1 ); + qglClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); + + // VULKAN + RB_SetGL2D(); // to ensure we have viewport that occupies entire window + float color[4] = {1, 0, 0.5, 1}; + vk_clear_attachments(false, true, color); + } return (const void *)(cmd + 1); } diff --git a/src/engine/renderer/tr_init.c b/src/engine/renderer/tr_init.c index 4570fe2..bde98f0 100644 --- a/src/engine/renderer/tr_init.c +++ b/src/engine/renderer/tr_init.c @@ -97,6 +97,7 @@ cvar_t *r_picmip; cvar_t *r_showtris; cvar_t *r_showsky; cvar_t *r_shownormals; +cvar_t *r_clear; cvar_t *r_swapInterval; cvar_t *r_textureMode; cvar_t *r_offsetFactor; @@ -941,6 +942,7 @@ void R_Register( void ) r_showtris = ri.Cvar_Get ("r_showtris", "0", CVAR_CHEAT); r_showsky = ri.Cvar_Get ("r_showsky", "0", CVAR_CHEAT); r_shownormals = ri.Cvar_Get ("r_shownormals", "0", CVAR_CHEAT); + r_clear = ri.Cvar_Get ("r_clear", "0", CVAR_CHEAT); r_offsetFactor = ri.Cvar_Get( "r_offsetfactor", "-1", CVAR_CHEAT ); r_offsetUnits = ri.Cvar_Get( "r_offsetunits", "-2", CVAR_CHEAT ); r_drawBuffer = ri.Cvar_Get( "r_drawBuffer", "GL_BACK", CVAR_CHEAT ); diff --git a/src/engine/renderer/tr_local.h b/src/engine/renderer/tr_local.h index 1c56982..c6372ec 100644 --- a/src/engine/renderer/tr_local.h +++ b/src/engine/renderer/tr_local.h @@ -1008,6 +1008,7 @@ extern cvar_t *r_logFile; // number of frames to emit GL logs extern cvar_t *r_showtris; // enables wireframe rendering of the world extern cvar_t *r_showsky; // forces sky in front of all surfaces extern cvar_t *r_shownormals; // draws wireframe normals +extern cvar_t *r_clear; // force screen clear every frame extern cvar_t *r_shadows; // controls shadows: 0 = none, 1 = blur, 2 = stencil, 3 = black planar projection