Skip to content

Commit 596c674

Browse files
committed
rework generic3DShader, strip genericShader
1 parent 7278bce commit 596c674

File tree

5 files changed

+29
-121
lines changed

5 files changed

+29
-121
lines changed

src/engine/renderer/gl_shader.cpp

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

4444
// *INDENT-OFF*
4545

46+
GLShader_generic *gl_genericShader = nullptr;
4647
GLShader_generic2D *gl_generic2DShader = nullptr;
4748
GLShader_generic3D *gl_generic3DShader = nullptr;
4849
GLShader_generic3DMaterial *gl_generic3DShaderMaterial = nullptr;
49-
GLShader_generic *gl_genericShader = nullptr;
5050
GLShader_cull *gl_cullShader = nullptr;
5151
GLShader_depthReduction *gl_depthReductionShader = nullptr;
5252
GLShader_clearSurfaces *gl_clearSurfacesShader = nullptr;
@@ -2174,31 +2174,18 @@ void GLShader::WriteUniformsToBuffer( uint32_t* buffer ) {
21742174
}
21752175
}
21762176

2177-
// TODO: Remove everything that is not needed.
21782177
GLShader_generic::GLShader_generic( GLShaderManager *manager ) :
21792178
GLShader( "generic", ATTR_POSITION | ATTR_TEXCOORD | ATTR_QTANGENT, manager ),
21802179
u_ColorMap( this ),
21812180
u_DepthMap( this ),
21822181
u_TextureMatrix( this ),
2183-
u_ViewOrigin( this ),
2184-
u_ViewUp( this ),
2185-
u_AlphaThreshold( this ),
21862182
u_ModelMatrix( this ),
21872183
u_ModelViewProjectionMatrix( this ),
2188-
u_LightFactor( this ),
21892184
u_ColorModulate( this ),
21902185
u_Color( this ),
2191-
u_Bones( this ),
2192-
u_VertexInterpolation( this ),
2193-
u_DepthScale( this ),
21942186
u_ProfilerZero( this ),
21952187
u_ProfilerRenderSubGroups( this ),
2196-
GLDeformStage( this ),
2197-
GLCompileMacro_USE_VERTEX_SKINNING( this ),
2198-
GLCompileMacro_USE_VERTEX_ANIMATION( this ),
2199-
GLCompileMacro_USE_TCGEN_ENVIRONMENT( this ),
2200-
GLCompileMacro_USE_TCGEN_LIGHTMAP( this ),
2201-
GLCompileMacro_USE_DEPTH_FADE( this )
2188+
GLDeformStage( this )
22022189
{
22032190
}
22042191

src/engine/renderer/gl_shader.h

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3897,31 +3897,18 @@ class u_Lights :
38973897
}
38983898
};
38993899

3900-
// TODO: Remove everything that is not needed.
39013900
class GLShader_generic :
39023901
public GLShader,
39033902
public u_ColorMap,
39043903
public u_DepthMap,
39053904
public u_TextureMatrix,
3906-
public u_ViewOrigin,
3907-
public u_ViewUp,
3908-
public u_AlphaThreshold,
39093905
public u_ModelMatrix,
39103906
public u_ModelViewProjectionMatrix,
3911-
public u_LightFactor,
39123907
public u_ColorModulate,
39133908
public u_Color,
3914-
public u_Bones,
3915-
public u_VertexInterpolation,
3916-
public u_DepthScale,
39173909
public u_ProfilerZero,
39183910
public u_ProfilerRenderSubGroups,
3919-
public GLDeformStage,
3920-
public GLCompileMacro_USE_VERTEX_SKINNING,
3921-
public GLCompileMacro_USE_VERTEX_ANIMATION,
3922-
public GLCompileMacro_USE_TCGEN_ENVIRONMENT,
3923-
public GLCompileMacro_USE_TCGEN_LIGHTMAP,
3924-
public GLCompileMacro_USE_DEPTH_FADE
3911+
public GLDeformStage
39253912
{
39263913
public:
39273914
GLShader_generic( GLShaderManager *manager );

src/engine/renderer/glsl_source/generic_fp.glsl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2525
#define GENERIC_GLSL
2626

2727
uniform sampler2D u_ColorMap;
28-
uniform float u_AlphaThreshold;
28+
29+
#if defined(GENERIC_2D) || defined(GENERIC_3D)
30+
uniform float u_AlphaThreshold;
31+
#endif
2932

3033
#if defined(GENERIC_3D)
3134
uniform float u_LightFactor;
@@ -61,11 +64,13 @@ void main()
6164

6265
vec4 color = texture2D(u_ColorMap, var_TexCoords);
6366

67+
#if defined(GENERIC_2D) || defined(GENERIC_3D)
6468
if( abs(color.a + u_AlphaThreshold) <= 1.0 )
6569
{
6670
discard;
6771
return;
6872
}
73+
#endif
6974

7075
#if defined(USE_DEPTH_FADE)
7176
float depth = texture2D(u_DepthMap, gl_FragCoord.xy / r_FBufSize).x;

src/engine/renderer/tr_backend.cpp

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1910,15 +1910,9 @@ static void RB_SetupLightForLighting( trRefLight_t *light )
19101910

19111911
GL_PushMatrix();
19121912

1913-
gl_genericShader->SetVertexSkinning( false );
1914-
gl_genericShader->SetVertexAnimation( false );
1915-
gl_genericShader->SetTCGenEnvironment( false );
1916-
gl_genericShader->SetTCGenLightmap( false );
1917-
gl_genericShader->SetDepthFade( false );
19181913
gl_genericShader->BindProgram( 0 );
19191914

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

@@ -2762,14 +2756,8 @@ void RB_RunVisTests( )
27622756
Tess_UpdateVBOs( );
27632757
GL_VertexAttribsState( ATTR_POSITION );
27642758

2765-
gl_genericShader->SetVertexSkinning( false );
2766-
gl_genericShader->SetVertexAnimation( false );
2767-
gl_genericShader->SetTCGenEnvironment( false );
2768-
gl_genericShader->SetTCGenLightmap( false );
2769-
gl_genericShader->SetDepthFade( false );
27702759
gl_genericShader->BindProgram( 0 );
27712760

2772-
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
27732761
gl_genericShader->SetUniform_Color( Color::White );
27742762

27752763
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CONST, alphaGen_t::AGEN_CONST );
@@ -3386,18 +3374,12 @@ static void RB_RenderDebugUtils()
33863374
static const vec3_t minSize = { -2, -2, -2 };
33873375
static const vec3_t maxSize = { 2, 2, 2 };
33883376

3389-
gl_genericShader->SetVertexSkinning( false );
3390-
gl_genericShader->SetVertexAnimation( false );
3391-
gl_genericShader->SetTCGenEnvironment( false );
3392-
gl_genericShader->SetTCGenLightmap( false );
3393-
gl_genericShader->SetDepthFade( false );
33943377
gl_genericShader->BindProgram( 0 );
33953378

33963379
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
33973380
GL_Cull( cullType_t::CT_TWO_SIDED );
33983381

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

34033385
// bind u_ColorMap
@@ -3527,18 +3509,12 @@ static void RB_RenderDebugUtils()
35273509
static const vec3_t mins = { -1, -1, -1 };
35283510
static const vec3_t maxs = { 1, 1, 1 };
35293511

3530-
gl_genericShader->SetVertexSkinning( false );
3531-
gl_genericShader->SetVertexAnimation( false );
3532-
gl_genericShader->SetTCGenEnvironment( false );
3533-
gl_genericShader->SetTCGenLightmap( false );
3534-
gl_genericShader->SetDepthFade( false );
35353512
gl_genericShader->BindProgram( 0 );
35363513

35373514
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
35383515
GL_Cull( cullType_t::CT_TWO_SIDED );
35393516

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

@@ -3642,18 +3618,12 @@ static void RB_RenderDebugUtils()
36423618
static const vec3_t mins = { -1, -1, -1 };
36433619
static const vec3_t maxs = { 1, 1, 1 };
36443620

3645-
gl_genericShader->SetVertexSkinning( false );
3646-
gl_genericShader->SetVertexAnimation( false );
3647-
gl_genericShader->SetTCGenEnvironment( false );
3648-
gl_genericShader->SetTCGenLightmap( false );
3649-
gl_genericShader->SetDepthFade( false );
36503621
gl_genericShader->BindProgram( 0 );
36513622

36523623
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
36533624
GL_Cull( cullType_t::CT_TWO_SIDED );
36543625

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

@@ -3708,17 +3678,11 @@ static void RB_RenderDebugUtils()
37083678
static refSkeleton_t skeleton;
37093679
refSkeleton_t *skel;
37103680

3711-
gl_genericShader->SetVertexSkinning( false );
3712-
gl_genericShader->SetVertexAnimation( false );
3713-
gl_genericShader->SetTCGenEnvironment( false );
3714-
gl_genericShader->SetTCGenLightmap( false );
3715-
gl_genericShader->SetDepthFade( false );
37163681
gl_genericShader->BindProgram( 0 );
37173682

37183683
GL_Cull( cullType_t::CT_TWO_SIDED );
37193684

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

@@ -3921,18 +3885,12 @@ static void RB_RenderDebugUtils()
39213885
int iaCount;
39223886
matrix_t ortho;
39233887

3924-
gl_genericShader->SetVertexSkinning( false );
3925-
gl_genericShader->SetVertexAnimation( false );
3926-
gl_genericShader->SetTCGenEnvironment( false );
3927-
gl_genericShader->SetTCGenLightmap( false );
3928-
gl_genericShader->SetDepthFade( false );
39293888
gl_genericShader->BindProgram( 0 );
39303889

39313890
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
39323891
GL_Cull( cullType_t::CT_TWO_SIDED );
39333892

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

39383896
// bind u_ColorMap
@@ -4057,15 +4015,9 @@ static void RB_RenderDebugUtils()
40574015
}
40584016

40594017
{
4060-
gl_genericShader->SetVertexSkinning( false );
4061-
gl_genericShader->SetVertexAnimation( false );
4062-
gl_genericShader->SetTCGenEnvironment( false );
4063-
gl_genericShader->SetTCGenLightmap( false );
4064-
gl_genericShader->SetDepthFade( false );
40654018
gl_genericShader->BindProgram( 0 );
40664019

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

@@ -4139,15 +4091,9 @@ static void RB_RenderDebugUtils()
41394091

41404092
GLimp_LogComment( "--- r_showLightGrid > 0: Rendering light grid\n" );
41414093

4142-
gl_genericShader->SetVertexSkinning( false );
4143-
gl_genericShader->SetVertexAnimation( false );
4144-
gl_genericShader->SetTCGenEnvironment( false );
4145-
gl_genericShader->SetTCGenLightmap( false );
4146-
gl_genericShader->SetDepthFade( false );
41474094
gl_genericShader->BindProgram( 0 );
41484095

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

@@ -4230,15 +4176,9 @@ static void RB_RenderDebugUtils()
42304176
return;
42314177
}
42324178

4233-
gl_genericShader->SetVertexSkinning( false );
4234-
gl_genericShader->SetVertexAnimation( false );
4235-
gl_genericShader->SetTCGenEnvironment( false );
4236-
gl_genericShader->SetTCGenLightmap( false );
4237-
gl_genericShader->SetDepthFade( false );
42384179
gl_genericShader->BindProgram( 0 );
42394180

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

42444184
// bind u_ColorMap
@@ -4523,11 +4463,6 @@ void DebugDrawBegin( debugDrawMode_t mode, float size ) {
45234463
break;
45244464
}
45254465

4526-
gl_genericShader->SetVertexSkinning( false );
4527-
gl_genericShader->SetVertexAnimation( false );
4528-
gl_genericShader->SetTCGenEnvironment( false );
4529-
gl_genericShader->SetTCGenLightmap( false );
4530-
gl_genericShader->SetDepthFade( false );
45314466
gl_genericShader->BindProgram( 0 );
45324467

45334468
GL_State( GLS_SRCBLEND_SRC_ALPHA | GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA );
@@ -4536,7 +4471,6 @@ void DebugDrawBegin( debugDrawMode_t mode, float size ) {
45364471
GL_VertexAttribsState( ATTR_POSITION | ATTR_COLOR | ATTR_TEXCOORD );
45374472

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

@@ -5646,17 +5580,11 @@ void RB_ShowImages()
56465580

56475581
glFinish();
56485582

5649-
gl_genericShader->SetVertexSkinning( false );
5650-
gl_genericShader->SetVertexAnimation( false );
5651-
gl_genericShader->SetTCGenEnvironment( false );
5652-
gl_genericShader->SetTCGenLightmap( false );
5653-
gl_genericShader->SetDepthFade( false );
56545583
gl_genericShader->BindProgram( 0 );
56555584

56565585
GL_Cull( cullType_t::CT_TWO_SIDED );
56575586

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

src/engine/renderer/tr_shade.cpp

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -660,58 +660,59 @@ static void DrawTris()
660660

661661
GLimp_LogComment( "--- DrawTris ---\n" );
662662

663-
gl_genericShader->SetVertexSkinning( glConfig2.vboVertexSkinningAvailable && tess.vboVertexSkinning );
664-
gl_genericShader->SetVertexAnimation( tess.vboVertexAnimation );
665-
gl_genericShader->SetTCGenEnvironment( false );
666-
gl_genericShader->SetTCGenLightmap( false );
667-
gl_genericShader->SetDepthFade( false );
663+
gl_generic3DShader->SetVertexSkinning( glConfig2.vboVertexSkinningAvailable && tess.vboVertexSkinning );
664+
gl_generic3DShader->SetVertexAnimation( tess.vboVertexAnimation );
665+
gl_generic3DShader->SetTCGenEnvironment( false );
666+
gl_generic3DShader->SetTCGenLightmap( false );
667+
gl_generic3DShader->SetDepthFade( false );
668668

669669
if( tess.surfaceStages != tess.surfaceLastStage ) {
670670
deform = tess.surfaceStages[ 0 ].deformIndex;
671671
}
672672

673-
gl_genericShader->BindProgram( deform );
673+
gl_generic3DShader->BindProgram( deform );
674674

675675
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHMASK_TRUE );
676676

677677
// u_AlphaThreshold
678-
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
678+
gl_generic3DShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
679679

680680
if ( r_showBatches->integer || r_showLightBatches->integer )
681681
{
682-
gl_genericShader->SetUniform_Color( Color::Color::Indexed( backEnd.pc.c_batches % 8 ) );
682+
gl_generic3DShader->SetUniform_Color( Color::Color::Indexed( backEnd.pc.c_batches % 8 ) );
683683
}
684684
else if ( glState.currentVBO == tess.vbo )
685685
{
686-
gl_genericShader->SetUniform_Color( Color::Red );
686+
gl_generic3DShader->SetUniform_Color( Color::Red );
687687
}
688688
else if ( glState.currentVBO )
689689
{
690-
gl_genericShader->SetUniform_Color( Color::Blue );
690+
gl_generic3DShader->SetUniform_Color( Color::Blue );
691691
}
692692
else
693693
{
694-
gl_genericShader->SetUniform_Color( Color::White );
694+
gl_generic3DShader->SetUniform_Color( Color::White );
695695
}
696696

697-
gl_genericShader->SetUniform_ColorModulate( colorGen_t::CGEN_CONST, alphaGen_t::AGEN_CONST );
698-
gl_genericShader->SetUniform_ModelMatrix( backEnd.orientation.transformMatrix );
699-
gl_genericShader->SetUniform_ModelViewProjectionMatrix( glState.modelViewProjectionMatrix[ glState.stackIndex ] );
697+
gl_generic3DShader->SetUniform_ColorModulate( colorGen_t::CGEN_CONST, alphaGen_t::AGEN_CONST );
698+
gl_generic3DShader->SetUniform_ModelMatrix( backEnd.orientation.transformMatrix );
699+
gl_generic3DShader->SetUniform_ModelViewProjectionMatrix( glState.modelViewProjectionMatrix[ glState.stackIndex ] );
700+
gl_generic3DShader->SetUniform_LightFactor( 1.0 );
700701

701702
if ( glConfig2.vboVertexSkinningAvailable && tess.vboVertexSkinning )
702703
{
703-
gl_genericShader->SetUniform_Bones( tess.numBones, tess.bones );
704+
gl_generic3DShader->SetUniform_Bones( tess.numBones, tess.bones );
704705
}
705706

706707
// u_DeformGen
707-
gl_genericShader->SetUniform_Time( backEnd.refdef.floatTime - backEnd.currentEntity->e.shaderTime );
708+
gl_generic3DShader->SetUniform_Time( backEnd.refdef.floatTime - backEnd.currentEntity->e.shaderTime );
708709

709710
// bind u_ColorMap
710-
gl_genericShader->SetUniform_ColorMapBindless(
711+
gl_generic3DShader->SetUniform_ColorMapBindless(
711712
GL_BindToTMU( 0, tr.whiteImage )
712713
);
713-
gl_genericShader->SetUniform_TextureMatrix( tess.svars.texMatrices[ TB_COLORMAP ] );
714-
gl_genericShader->SetRequiredVertexPointers();
714+
gl_generic3DShader->SetUniform_TextureMatrix( tess.svars.texMatrices[ TB_COLORMAP ] );
715+
gl_generic3DShader->SetRequiredVertexPointers();
715716

716717
glDepthRange( 0, 0 );
717718

0 commit comments

Comments
 (0)