Skip to content

Commit ac2b4dc

Browse files
committed
Migrate remaining renderer commands to C++ interface
1 parent 24f42cc commit ac2b4dc

File tree

4 files changed

+48
-49
lines changed

4 files changed

+48
-49
lines changed

src/engine/renderer/tr_bsp.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5016,6 +5016,10 @@ void R_BuildCubeMaps()
50165016
}
50175017
}
50185018

5019+
static Cmd::LambdaCmd buildCubeMapsCmd(
5020+
"buildcubemaps", "generate cube probes for reflection mapping",
5021+
[]( const Cmd::Args & ) { R_BuildCubeMaps(); });
5022+
50195023
/*
50205024
=================
50215025
RE_LoadWorldMap

src/engine/renderer/tr_init.cpp

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -903,7 +903,7 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
903903
GfxInfo_f
904904
================
905905
*/
906-
void GfxInfo_f()
906+
static void GfxInfo_f()
907907
{
908908
static const char fsstrings[][16] =
909909
{
@@ -1082,31 +1082,44 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
10821082
Log::Debug("replaceMaterialMinDimensionIfPresentWithMaxDimension: %d", r_replaceMaterialMinDimensionIfPresentWithMaxDimension->integer );
10831083
}
10841084

1085-
static void GLSL_restart_f()
1086-
{
1087-
// make sure the render thread is stopped
1088-
R_SyncRenderThread();
1085+
// FIXME: uses regular logging not Print()
1086+
static Cmd::LambdaCmd gfxInfoCmd(
1087+
"gfxinfo", "dump graphics driver and configuration info",
1088+
[]( const Cmd::Args & ) { GfxInfo_f(); });
10891089

1090-
GLSL_ShutdownGPUShaders();
1091-
GLSL_InitGPUShaders();
1090+
class GlslRestartCmd : public Cmd::StaticCmd
1091+
{
1092+
public:
1093+
GlslRestartCmd() : StaticCmd(
1094+
"glsl_restart", "recompile GLSL shaders (useful when shaderpath is set)") {}
10921095

1093-
for ( int i = 0; i < tr.numShaders; i++ )
1096+
void Run( const Cmd::Args & ) const override
10941097
{
1095-
shader_t &shader = *tr.shaders[ i ];
1096-
if ( shader.stages == shader.lastStage || shader.stages[ 0 ].deformIndex == 0 )
1097-
{
1098-
continue;
1099-
}
1098+
// make sure the render thread is stopped
1099+
R_SyncRenderThread();
11001100

1101-
int deformIndex =
1102-
gl_shaderManager.getDeformShaderIndex( shader.deforms, shader.numDeforms );
1101+
GLSL_ShutdownGPUShaders();
1102+
GLSL_InitGPUShaders();
11031103

1104-
for ( shaderStage_t *stage = shader.stages; stage != shader.lastStage; stage++ )
1104+
for ( int i = 0; i < tr.numShaders; i++ )
11051105
{
1106-
stage->deformIndex = deformIndex;
1106+
shader_t &shader = *tr.shaders[ i ];
1107+
if ( shader.stages == shader.lastStage || shader.stages[ 0 ].deformIndex == 0 )
1108+
{
1109+
continue;
1110+
}
1111+
1112+
int deformIndex =
1113+
gl_shaderManager.getDeformShaderIndex( shader.deforms, shader.numDeforms );
1114+
1115+
for ( shaderStage_t *stage = shader.stages; stage != shader.lastStage; stage++ )
1116+
{
1117+
stage->deformIndex = deformIndex;
1118+
}
11071119
}
11081120
}
1109-
}
1121+
};
1122+
static GlslRestartCmd glslRestartCmdRegistration;
11101123

11111124
/*
11121125
===============
@@ -1354,13 +1367,6 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
13541367
r_showParallelShadowSplits = Cvar_Get( "r_showParallelShadowSplits", "0", CVAR_CHEAT | CVAR_LATCH );
13551368

13561369
Cvar::Latch( r_profilerRenderSubGroups );
1357-
1358-
// make sure all the commands added here are also removed in R_Shutdown
1359-
ri.Cmd_AddCommand( "shaderexp", R_ShaderExp_f );
1360-
ri.Cmd_AddCommand( "gfxinfo", GfxInfo_f );
1361-
ri.Cmd_AddCommand( "buildcubemaps", R_BuildCubeMaps );
1362-
1363-
ri.Cmd_AddCommand( "glsl_restart", GLSL_restart_f );
13641370
}
13651371

13661372
/*
@@ -1533,12 +1539,6 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
15331539
{
15341540
Log::Debug("RE_Shutdown( destroyWindow = %i )", destroyWindow );
15351541

1536-
ri.Cmd_RemoveCommand( "shaderexp" );
1537-
ri.Cmd_RemoveCommand( "gfxinfo" );
1538-
ri.Cmd_RemoveCommand( "buildcubemaps" );
1539-
1540-
ri.Cmd_RemoveCommand( "glsl_restart" );
1541-
15421542
if ( tr.registered )
15431543
{
15441544
R_SyncRenderThread();

src/engine/renderer/tr_local.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3313,7 +3313,6 @@ inline bool checkGLErrors()
33133313
shader_t *R_FindShaderByName( const char *name );
33143314
const char *RE_GetShaderNameFromHandle( qhandle_t shader );
33153315
void R_InitShaders();
3316-
void R_ShaderExp_f();
33173316
void R_RemapShader( const char *oldShader, const char *newShader, const char *timeOffset );
33183317

33193318
/*

src/engine/renderer/tr_shader.cpp

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6855,28 +6855,24 @@ class ListShadersCmd : public Cmd::StaticCmd
68556855
};
68566856
static ListShadersCmd listShadersCmdRegistration;
68576857

6858-
void R_ShaderExp_f()
6858+
class ShaderExpCmd : public Cmd::StaticCmd
68596859
{
6860-
std::string buffer;
6860+
public:
6861+
ShaderExpCmd() : StaticCmd("shaderexp", "evaluate a q3shader expression (RB_EvalExpression)") {}
68616862

6862-
for ( int i = 1; i < ri.Cmd_Argc(); i++ )
6863+
void Run( const Cmd::Args &args ) const override
68636864
{
6864-
if ( i > 1 )
6865-
{
6866-
buffer += ' ';
6867-
}
6868-
6869-
buffer += ri.Cmd_Argv( i );
6870-
}
6871-
6872-
const char* buffer_p = buffer.c_str();
6873-
expression_t exp;
6865+
std::string expStr = args.ConcatArgs( 1 );
6866+
const char* buffer_p = expStr.c_str();
6867+
expression_t exp;
68746868

6875-
ParseExpression( &buffer_p, &exp );
6869+
ParseExpression( &buffer_p, &exp );
68766870

6877-
Log::CommandInteractionMessage( Str::Format( "%i total ops", exp.numOps ) );
6878-
Log::CommandInteractionMessage( Str::Format( "%f result", RB_EvalExpression( &exp, 0 ) ) );
6879-
}
6871+
Print( "%i total ops", exp.numOps );
6872+
Print( "%f result", RB_EvalExpression( &exp, 0 ) );
6873+
}
6874+
};
6875+
static ShaderExpCmd shaderExpCmdRegistration;
68806876

68816877
/*
68826878
====================

0 commit comments

Comments
 (0)