Skip to content

Commit

Permalink
renderer: remove the USE_ALPHA_TESTING macro and build less shader pe…
Browse files Browse the repository at this point in the history
…rmutations
  • Loading branch information
illwieckz committed Jun 6, 2024
1 parent 99990fa commit 90339a4
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 102 deletions.
9 changes: 3 additions & 6 deletions src/engine/renderer/gl_shader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1581,8 +1581,7 @@ GLShader_generic2D::GLShader_generic2D( GLShaderManager *manager ) :
u_Color( this ),
u_DepthScale( this ),
GLDeformStage( this ),
GLCompileMacro_USE_DEPTH_FADE( this ),
GLCompileMacro_USE_ALPHA_TESTING( this )
GLCompileMacro_USE_DEPTH_FADE( this )
{
}

Expand Down Expand Up @@ -1623,8 +1622,7 @@ GLShader_generic::GLShader_generic( GLShaderManager *manager ) :
GLCompileMacro_USE_VERTEX_SPRITE( this ),
GLCompileMacro_USE_TCGEN_ENVIRONMENT( this ),
GLCompileMacro_USE_TCGEN_LIGHTMAP( this ),
GLCompileMacro_USE_DEPTH_FADE( this ),
GLCompileMacro_USE_ALPHA_TESTING( this )
GLCompileMacro_USE_DEPTH_FADE( this )
{
}

Expand Down Expand Up @@ -1976,8 +1974,7 @@ GLShader_skybox::GLShader_skybox( GLShaderManager *manager ) :
u_ModelViewProjectionMatrix( this ),
u_InverseLightFactor( this ),
u_VertexInterpolation( this ),
GLDeformStage( this ),
GLCompileMacro_USE_ALPHA_TESTING( this )
GLDeformStage( this )
{
}

Expand Down
35 changes: 3 additions & 32 deletions src/engine/renderer/gl_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,6 @@ class GLCompileMacro
LIGHT_DIRECTIONAL,
USE_DEPTH_FADE,
USE_PHYSICAL_MAPPING,
USE_ALPHA_TESTING
};

public:
Expand Down Expand Up @@ -1279,31 +1278,6 @@ class GLCompileMacro_USE_PHYSICAL_MAPPING :
}
};

class GLCompileMacro_USE_ALPHA_TESTING :
GLCompileMacro
{
public:
GLCompileMacro_USE_ALPHA_TESTING(GLShader *shader) :
GLCompileMacro(shader)
{
}

const char *GetName() const override
{
return "USE_ALPHA_TESTING";
}

EGLCompileMacro GetType() const override
{
return USE_ALPHA_TESTING;
}

void SetAlphaTesting(bool enable)
{
SetMacro( enable );
}
};

class u_LightFactor :
GLUniform1f
{
Expand Down Expand Up @@ -2281,8 +2255,7 @@ class GLShader_generic2D :
public u_Color,
public u_DepthScale,
public GLDeformStage,
public GLCompileMacro_USE_DEPTH_FADE,
public GLCompileMacro_USE_ALPHA_TESTING
public GLCompileMacro_USE_DEPTH_FADE
{
public:
GLShader_generic2D( GLShaderManager *manager );
Expand Down Expand Up @@ -2312,8 +2285,7 @@ class GLShader_generic :
public GLCompileMacro_USE_VERTEX_SPRITE,
public GLCompileMacro_USE_TCGEN_ENVIRONMENT,
public GLCompileMacro_USE_TCGEN_LIGHTMAP,
public GLCompileMacro_USE_DEPTH_FADE,
public GLCompileMacro_USE_ALPHA_TESTING
public GLCompileMacro_USE_DEPTH_FADE
{
public:
GLShader_generic( GLShaderManager *manager );
Expand Down Expand Up @@ -2539,8 +2511,7 @@ class GLShader_skybox :
public u_ModelViewProjectionMatrix,
public u_InverseLightFactor,
public u_VertexInterpolation,
public GLDeformStage,
public GLCompileMacro_USE_ALPHA_TESTING
public GLDeformStage
{
public:
GLShader_skybox( GLShaderManager *manager );
Expand Down
2 changes: 0 additions & 2 deletions src/engine/renderer/glsl_source/generic_fp.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,11 @@ void main()
{
vec4 color = texture2D(u_ColorMap, var_TexCoords);

#if defined(USE_ALPHA_TESTING)
if( abs(color.a + u_AlphaThreshold) <= 1.0 )
{
discard;
return;
}
#endif

#if defined(USE_DEPTH_FADE) || defined(USE_VERTEX_SPRITE)
float depth = texture2D(u_DepthMap, gl_FragCoord.xy / r_FBufSize).x;
Expand Down
12 changes: 5 additions & 7 deletions src/engine/renderer/glsl_source/skybox_fp.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,11 @@ void main()
color = texture2D( u_CloudMap, st ).rgba;
}

#if defined(USE_ALPHA_TESTING)
if( abs(color.a + u_AlphaThreshold) <= 1.0 )
{
discard;
return;
}
#endif
if( abs(color.a + u_AlphaThreshold) <= 1.0 )
{
discard;
return;
}

color.rgb *= u_InverseLightFactor;

Expand Down
41 changes: 15 additions & 26 deletions src/engine/renderer/tr_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1891,11 +1891,10 @@ static void RB_SetupLightForLighting( trRefLight_t *light )
gl_genericShader->SetVertexSprite( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -2766,10 +2765,9 @@ void RB_RunVisTests( )
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_Color( Color::White );

gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CONST, alphaGen_t::AGEN_CONST );
Expand Down Expand Up @@ -3387,14 +3385,13 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CUSTOM_RGB, alphaGen_t::AGEN_CUSTOM );

gl_genericShader->SetRequiredVertexPointers();
Expand Down Expand Up @@ -3548,14 +3545,13 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -3673,14 +3669,13 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -3750,13 +3745,12 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -3978,14 +3972,13 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CUSTOM_RGB, alphaGen_t::AGEN_CUSTOM );

// bind u_ColorMap
Expand Down Expand Up @@ -4095,10 +4088,10 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
// set uniforms
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -4171,10 +4164,10 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
// set uniforms
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -4268,11 +4261,10 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CUSTOM_RGB, alphaGen_t::AGEN_CUSTOM );

// bind u_ColorMap
Expand Down Expand Up @@ -4558,14 +4550,13 @@ static void RB_RenderDebugUtils()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( Color::Black );

Expand Down Expand Up @@ -4653,7 +4644,6 @@ void DebugDrawBegin( debugDrawMode_t mode, float size ) {
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_State( GLS_SRCBLEND_SRC_ALPHA | GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA );
Expand All @@ -4662,7 +4652,7 @@ void DebugDrawBegin( debugDrawMode_t mode, float size ) {
GL_VertexAttribsState( ATTR_POSITION | ATTR_COLOR | ATTR_TEXCOORD );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_Color( colorClear );

Expand Down Expand Up @@ -5783,13 +5773,12 @@ void RB_ShowImages()
gl_genericShader->SetTCGenEnvironment( false );
gl_genericShader->SetTCGenLightmap( false );
gl_genericShader->SetDepthFade( false );
gl_genericShader->SetAlphaTesting( false );
gl_genericShader->BindProgram( 0 );

GL_Cull( cullType_t::CT_TWO_SIDED );

// set uniforms
//gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
gl_genericShader->SetUniform_TextureMatrix( matrixIdentity );

Expand Down
Loading

0 comments on commit 90339a4

Please sign in to comment.