Skip to content

Commit 7b21035

Browse files
committed
Merge generic2D shader into generic
The only difference is in a compile macro that's used to skip UI for subgroup profiling.
1 parent af2ba5a commit 7b21035

File tree

3 files changed

+32
-94
lines changed

3 files changed

+32
-94
lines changed

src/engine/renderer/gl_shader.cpp

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ ShaderKind shaderKind = ShaderKind::Unknown;
4343

4444
// *INDENT-OFF*
4545

46-
GLShader_generic2D *gl_generic2DShader = nullptr;
4746
GLShader_generic *gl_genericShader = nullptr;
4847
GLShader_genericMaterial *gl_genericShaderMaterial = nullptr;
4948
GLShader_cull *gl_cullShader = nullptr;
@@ -2172,31 +2171,6 @@ void GLShader::WriteUniformsToBuffer( uint32_t* buffer ) {
21722171
}
21732172
}
21742173

2175-
GLShader_generic2D::GLShader_generic2D( GLShaderManager *manager ) :
2176-
GLShader( "generic2D", "generic", ATTR_POSITION | ATTR_TEXCOORD | ATTR_QTANGENT, manager ),
2177-
u_ColorMap( this ),
2178-
u_DepthMap( this ),
2179-
u_TextureMatrix( this ),
2180-
u_AlphaThreshold( this ),
2181-
u_ModelMatrix( this ),
2182-
u_ModelViewProjectionMatrix( this ),
2183-
u_ColorModulate( this ),
2184-
u_Color( this ),
2185-
u_DepthScale( this ),
2186-
GLDeformStage( this )
2187-
{
2188-
}
2189-
2190-
void GLShader_generic2D::BuildShaderCompileMacros( std::string& compileMacros )
2191-
{
2192-
compileMacros += "GENERIC_2D ";
2193-
}
2194-
2195-
void GLShader_generic2D::SetShaderProgramUniforms( shaderProgram_t *shaderProgram )
2196-
{
2197-
glUniform1i( glGetUniformLocation( shaderProgram->program, "u_ColorMap" ), 0 );
2198-
}
2199-
22002174
GLShader_generic::GLShader_generic( GLShaderManager *manager ) :
22012175
GLShader( "generic", ATTR_POSITION | ATTR_TEXCOORD | ATTR_QTANGENT, manager ),
22022176
u_ColorMap( this ),
@@ -2219,7 +2193,8 @@ GLShader_generic::GLShader_generic( GLShaderManager *manager ) :
22192193
GLCompileMacro_USE_VERTEX_ANIMATION( this ),
22202194
GLCompileMacro_USE_TCGEN_ENVIRONMENT( this ),
22212195
GLCompileMacro_USE_TCGEN_LIGHTMAP( this ),
2222-
GLCompileMacro_USE_DEPTH_FADE( this )
2196+
GLCompileMacro_USE_DEPTH_FADE( this ),
2197+
GLCompileMacro_GENERIC_2D( this )
22232198
{
22242199
}
22252200

src/engine/renderer/gl_shader.h

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,7 @@ class GLCompileMacro
16861686
USE_SHADOWING,
16871687
LIGHT_DIRECTIONAL,
16881688
USE_DEPTH_FADE,
1689+
GENERIC_2D,
16891690
USE_PHYSICAL_MAPPING,
16901691
};
16911692

@@ -2110,6 +2111,26 @@ class GLCompileMacro_USE_DEPTH_FADE :
21102111
}
21112112
};
21122113

2114+
class GLCompileMacro_GENERIC_2D :
2115+
GLCompileMacro {
2116+
public:
2117+
GLCompileMacro_GENERIC_2D( GLShader* shader ) :
2118+
GLCompileMacro( shader ) {
2119+
}
2120+
2121+
const char* GetName() const override {
2122+
return "GENERIC_2D";
2123+
}
2124+
2125+
EGLCompileMacro GetType() const override {
2126+
return EGLCompileMacro::GENERIC_2D;
2127+
}
2128+
2129+
void SetGeneric2D( bool enable ) {
2130+
SetMacro( enable );
2131+
}
2132+
};
2133+
21132134
class GLCompileMacro_USE_PHYSICAL_MAPPING :
21142135
GLCompileMacro
21152136
{
@@ -3918,28 +3939,6 @@ class u_Lights :
39183939
}
39193940
};
39203941

3921-
// FIXME: this is the same as 'generic' and has no reason for existing.
3922-
// It was added along with RmlUi transforms to add "gl_FragDepth = 0;" to the GLSL,
3923-
// but that turns out not to be needed.
3924-
class GLShader_generic2D :
3925-
public GLShader,
3926-
public u_ColorMap,
3927-
public u_DepthMap,
3928-
public u_TextureMatrix,
3929-
public u_AlphaThreshold,
3930-
public u_ModelMatrix,
3931-
public u_ModelViewProjectionMatrix,
3932-
public u_ColorModulate,
3933-
public u_Color,
3934-
public u_DepthScale,
3935-
public GLDeformStage
3936-
{
3937-
public:
3938-
GLShader_generic2D( GLShaderManager *manager );
3939-
void BuildShaderCompileMacros( std::string& compileMacros ) override;
3940-
void SetShaderProgramUniforms( shaderProgram_t *shaderProgram ) override;
3941-
};
3942-
39433942
class GLShader_generic :
39443943
public GLShader,
39453944
public u_ColorMap,
@@ -3962,7 +3961,8 @@ class GLShader_generic :
39623961
public GLCompileMacro_USE_VERTEX_ANIMATION,
39633962
public GLCompileMacro_USE_TCGEN_ENVIRONMENT,
39643963
public GLCompileMacro_USE_TCGEN_LIGHTMAP,
3965-
public GLCompileMacro_USE_DEPTH_FADE
3964+
public GLCompileMacro_USE_DEPTH_FADE,
3965+
public GLCompileMacro_GENERIC_2D
39663966
{
39673967
public:
39683968
GLShader_generic( GLShaderManager *manager );
@@ -4714,7 +4714,6 @@ std::string GetShaderPath();
47144714

47154715
extern ShaderKind shaderKind;
47164716

4717-
extern GLShader_generic2D *gl_generic2DShader;
47184717
extern GLShader_generic *gl_genericShader;
47194718
extern GLShader_genericMaterial *gl_genericShaderMaterial;
47204719
extern GLShader_cull *gl_cullShader;

src/engine/renderer/tr_shade.cpp

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ static void GLSL_InitGPUShadersOrError()
210210
gl_shaderManager.GenerateBuiltinHeaders();
211211

212212
// single texture rendering
213-
gl_shaderManager.load( gl_generic2DShader );
214213
gl_shaderManager.load( gl_genericShader );
215214

216215
// standard light mapping
@@ -469,7 +468,6 @@ void GLSL_ShutdownGPUShaders()
469468

470469
gl_shaderManager.freeAll();
471470

472-
gl_generic2DShader = nullptr;
473471
gl_genericShader = nullptr;
474472
gl_genericShaderMaterial = nullptr;
475473
gl_cullShader = nullptr;
@@ -816,46 +814,6 @@ void Render_NOP( shaderStage_t * )
816814
{
817815
}
818816

819-
static void Render_generic2D( shaderStage_t *pStage )
820-
{
821-
GLimp_LogComment( "--- Render_generic2D ---\n" );
822-
823-
// Disable depth testing and writing
824-
GL_State( ( pStage->stateBits & ~GLS_DEPTHMASK_TRUE ) | GLS_DEPTHTEST_DISABLE );
825-
826-
gl_generic2DShader->BindProgram( pStage->deformIndex );
827-
828-
// set uniforms
829-
// u_AlphaThreshold
830-
gl_generic2DShader->SetUniform_AlphaTest( pStage->stateBits );
831-
832-
// u_ColorModulate
833-
colorGen_t rgbGen = SetRgbGen( pStage );
834-
alphaGen_t alphaGen = SetAlphaGen( pStage );
835-
836-
gl_generic2DShader->SetUniform_ColorModulate( rgbGen, alphaGen );
837-
838-
// u_Color
839-
gl_generic2DShader->SetUniform_Color( tess.svars.color );
840-
841-
gl_generic2DShader->SetUniform_ModelMatrix( backEnd.orientation.transformMatrix );
842-
gl_generic2DShader->SetUniform_ModelViewProjectionMatrix( glState.modelViewProjectionMatrix[ glState.stackIndex ] );
843-
844-
// u_DeformGen
845-
gl_generic2DShader->SetUniform_Time( backEnd.refdef.floatTime - backEnd.currentEntity->e.shaderTime );
846-
847-
// bind u_ColorMap
848-
gl_generic2DShader->SetUniform_ColorMapBindless( BindAnimatedImage( 0, &pStage->bundle[TB_COLORMAP] ) );
849-
gl_generic2DShader->SetUniform_TextureMatrix( tess.svars.texMatrices[ TB_COLORMAP ] );
850-
851-
gl_generic2DShader->SetRequiredVertexPointers();
852-
853-
Tess_DrawElements();
854-
GL_CheckErrors();
855-
856-
GL_CheckErrors();
857-
}
858-
859817
void Render_generic3D( shaderStage_t *pStage )
860818
{
861819
GLimp_LogComment( "--- Render_generic3D ---\n" );
@@ -970,7 +928,13 @@ void Render_generic( shaderStage_t *pStage )
970928
{
971929
if ( backEnd.projection2D )
972930
{
973-
Render_generic2D( pStage );
931+
glState.glStateBitsMask = ~uint32_t( GLS_DEPTHMASK_TRUE ) | GLS_DEPTHTEST_DISABLE;
932+
gl_genericShader->SetGeneric2D( true );
933+
934+
Render_generic3D( pStage );
935+
936+
glState.glStateBitsMask = 0;
937+
gl_genericShader->SetGeneric2D( false );
974938
return;
975939
}
976940

0 commit comments

Comments
 (0)