Skip to content

Commit c760380

Browse files
committed
NUKE vertex overbright code for generic shader
This is unused following the previous commit which make shaders that need overbright with `rgbGen vertex` run on the `lightMapping` shader instead of `generic`. Note: IS_LIGHT_STYLE was misnamed. It actually meant vertex overbright
1 parent 84e4ca5 commit c760380

File tree

6 files changed

+45
-97
lines changed

6 files changed

+45
-97
lines changed

src/engine/renderer/Material.cpp

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,14 @@ All of these functions must write stage material data regardless of whether pSta
134134
because stages here are combined into as few as possible,
135135
and the stage chosen for storage might not have all of those enabled */
136136

137-
void UpdateSurfaceDataNONE( uint32_t*, shaderStage_t*, bool, bool, bool ) {
137+
void UpdateSurfaceDataNONE( uint32_t*, shaderStage_t*, bool, bool ) {
138138
ASSERT_UNREACHABLE();
139139
}
140140

141-
void UpdateSurfaceDataNOP( uint32_t*, shaderStage_t*, bool, bool, bool ) {
141+
void UpdateSurfaceDataNOP( uint32_t*, shaderStage_t*, bool, bool ) {
142142
}
143143

144-
void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, bool mayUseVertexOverbright, bool, bool ) {
144+
void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
145145
// shader_t* shader = pStage->shader;
146146

147147
materials += pStage->bufferOffset;
@@ -154,7 +154,7 @@ void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, boo
154154
alphaGen_t alphaGen = SetAlphaGen( pStage );
155155

156156
const bool styleLightMap = pStage->type == stageType_t::ST_STYLELIGHTMAP || pStage->type == stageType_t::ST_STYLECOLORMAP;
157-
gl_genericShaderMaterial->SetUniform_ColorModulateColorGen_Uint( rgbGen, alphaGen, mayUseVertexOverbright, styleLightMap );
157+
gl_genericShaderMaterial->SetUniform_ColorModulateColorGen_Uint( rgbGen, alphaGen, styleLightMap );
158158

159159
Tess_ComputeColor( pStage );
160160
gl_genericShaderMaterial->SetUniform_Color_Uint( tess.svars.color );
@@ -164,7 +164,7 @@ void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, boo
164164
gl_genericShaderMaterial->WriteUniformsToBuffer( materials );
165165
}
166166

167-
void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage, bool, bool vertexLit, bool fullbright ) {
167+
void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage, bool vertexLit, bool fullbright ) {
168168
shader_t* shader = pStage->shader;
169169

170170
materials += pStage->bufferOffset;
@@ -181,7 +181,7 @@ void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage,
181181
}
182182

183183
// u_ColorModulate
184-
gl_lightMappingShaderMaterial->SetUniform_ColorModulateColorGen_Uint( rgbGen, alphaGen, false, !fullbright );
184+
gl_lightMappingShaderMaterial->SetUniform_ColorModulateColorGen_Uint( rgbGen, alphaGen, !fullbright );
185185

186186
// u_Color
187187
gl_lightMappingShaderMaterial->SetUniform_Color_Uint( tess.svars.color );
@@ -210,7 +210,7 @@ void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage,
210210
gl_lightMappingShaderMaterial->WriteUniformsToBuffer( materials );
211211
}
212212

213-
void UpdateSurfaceDataReflection( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
213+
void UpdateSurfaceDataReflection( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
214214
shader_t* shader = pStage->shader;
215215

216216
materials += pStage->bufferOffset;
@@ -247,7 +247,7 @@ void UpdateSurfaceDataReflection( uint32_t* materials, shaderStage_t* pStage, bo
247247
gl_reflectionShaderMaterial->WriteUniformsToBuffer( materials );
248248
}
249249

250-
void UpdateSurfaceDataSkybox( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
250+
void UpdateSurfaceDataSkybox( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
251251
// shader_t* shader = pStage->shader;
252252

253253
materials += pStage->bufferOffset;
@@ -258,7 +258,7 @@ void UpdateSurfaceDataSkybox( uint32_t* materials, shaderStage_t* pStage, bool,
258258
gl_skyboxShaderMaterial->WriteUniformsToBuffer( materials );
259259
}
260260

261-
void UpdateSurfaceDataScreen( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
261+
void UpdateSurfaceDataScreen( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
262262
// shader_t* shader = pStage->shader;
263263

264264
materials += pStage->bufferOffset;
@@ -271,7 +271,7 @@ void UpdateSurfaceDataScreen( uint32_t* materials, shaderStage_t* pStage, bool,
271271
gl_screenShaderMaterial->WriteUniformsToBuffer( materials );
272272
}
273273

274-
void UpdateSurfaceDataHeatHaze( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
274+
void UpdateSurfaceDataHeatHaze( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
275275
// shader_t* shader = pStage->shader;
276276

277277
materials += pStage->bufferOffset;
@@ -288,7 +288,7 @@ void UpdateSurfaceDataHeatHaze( uint32_t* materials, shaderStage_t* pStage, bool
288288
gl_heatHazeShaderMaterial->WriteUniformsToBuffer( materials );
289289
}
290290

291-
void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
291+
void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
292292
// shader_t* shader = pStage->shader;
293293

294294
materials += pStage->bufferOffset;
@@ -334,7 +334,7 @@ void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool,
334334
gl_liquidShaderMaterial->WriteUniformsToBuffer( materials );
335335
}
336336

337-
void UpdateSurfaceDataFog( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool ) {
337+
void UpdateSurfaceDataFog( uint32_t* materials, shaderStage_t* pStage, bool, bool ) {
338338
// shader_t* shader = pStage->shader;
339339

340340
materials += pStage->bufferOffset;
@@ -436,14 +436,13 @@ void MaterialSystem::GenerateMaterialsBuffer( std::vector<shaderStage_t*>& stage
436436
uint32_t variants = 0;
437437
for ( int i = 0; i < ShaderStageVariant::ALL && variants < pStage->variantOffset; i++ ) {
438438
if ( pStage->variantOffsets[i] != -1 ) {
439-
const bool mayUseVertexOverbright = i & ShaderStageVariant::VERTEX_OVERBRIGHT;
440439
const bool vertexLit = i & ShaderStageVariant::VERTEX_LIT;
441440
const bool fullbright = i & ShaderStageVariant::FULLBRIGHT;
442441

443442
const uint32_t variantOffset = pStage->variantOffsets[i] * pStage->paddedSize;
444443
pStage->bufferOffset += variantOffset;
445444

446-
pStage->surfaceDataUpdater( materialsData, pStage, mayUseVertexOverbright, vertexLit, fullbright );
445+
pStage->surfaceDataUpdater( materialsData, pStage, vertexLit, fullbright );
447446

448447
pStage->bufferOffset -= variantOffset;
449448
variants++;
@@ -774,14 +773,10 @@ static std::string GetStageInfo( const shaderStage_t* pStage, const uint32_t dyn
774773
stageShaderNames.at( pStage->shaderBinder ), pStage->materialOffset, pStage->bufferOffset );
775774

776775
static const char* stageVariants[] = {
777-
"base variant ",
778-
"vertex overbright ",
779-
"vertex-lit ",
780-
"vertex overbright vertex-lit ",
781-
"fullbright ",
782-
"vertex overbright fullbright ",
783-
"vertex-lit fullbright ",
784-
"vertex overbright vertex-lit fullbright"
776+
"base variant ",
777+
"vertex-lit ",
778+
"fullbright ",
779+
"vertex-lit fullbright",
785780
};
786781
static_assert( ARRAY_LEN( stageVariants ) == ShaderStageVariant::ALL,
787782
"update stage variant text descriptions" );
@@ -1272,8 +1267,8 @@ void ProcessMaterialFog( Material* material, shaderStage_t* pStage, MaterialSurf
12721267
}
12731268

12741269
void MaterialSystem::AddStage( MaterialSurface* surface, shaderStage_t* pStage, uint32_t stage,
1275-
const bool mayUseVertexOverbright, const bool vertexLit, const bool fullbright ) {
1276-
const int variant = ( mayUseVertexOverbright ? ShaderStageVariant::VERTEX_OVERBRIGHT : 0 )
1270+
const bool vertexLit, const bool fullbright ) {
1271+
const int variant = 0
12771272
| ( vertexLit ? ShaderStageVariant::VERTEX_LIT : 0 )
12781273
| ( fullbright ? ShaderStageVariant::FULLBRIGHT : 0 );
12791274

@@ -1392,8 +1387,6 @@ void MaterialSystem::ProcessStage( MaterialSurface* surface, shaderStage_t* pSta
13921387
lightMode_t lightMode;
13931388
deluxeMode_t deluxeMode;
13941389
SetLightDeluxeMode( surface, pStage, lightMode, deluxeMode );
1395-
const bool mayUseVertexOverbright = pStage->type == stageType_t::ST_COLORMAP
1396-
&& surface->bspSurface && pStage->shaderBinder == BindShaderGeneric3D;
13971390
const bool vertexLit = lightMode == lightMode_t::VERTEX && pStage->shaderBinder == BindShaderLightMapping;
13981391
const bool fullbright = lightMode == lightMode_t::FULLBRIGHT && pStage->shaderBinder == BindShaderLightMapping;
13991392

@@ -1479,7 +1472,7 @@ void MaterialSystem::ProcessStage( MaterialSurface* surface, shaderStage_t* pSta
14791472
pStage->useMaterialSystem = true;
14801473
pStage->initialized = true;
14811474

1482-
AddStage( surface, pStage, stage, mayUseVertexOverbright, vertexLit, fullbright );
1475+
AddStage( surface, pStage, stage, vertexLit, fullbright );
14831476
AddStageTextures( surface, pStage, stage, &materials[previousMaterialID] );
14841477

14851478
surface->materialIDs[stage] = previousMaterialID;

src/engine/renderer/Material.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ class MaterialSystem {
376376

377377
void AddStageTextures( MaterialSurface* surface, shaderStage_t* pStage, const uint32_t stage, Material* material );
378378
void AddStage( MaterialSurface* surface, shaderStage_t* pStage, uint32_t stage,
379-
const bool mayUseVertexOverbright, const bool vertexLit, const bool fullbright );
379+
const bool vertexLit, const bool fullbright );
380380
void ProcessStage( MaterialSurface* surface, shaderStage_t* pStage, shader_t* shader, uint32_t* packIDs, uint32_t& stage,
381381
uint32_t& previousMaterialID, bool skipStageSync = false );
382382
void GenerateMaterial( MaterialSurface* surface, int globalFog );
@@ -451,16 +451,16 @@ extern GLSSBO debugSSBO; // Global
451451

452452
extern MaterialSystem materialSystem;
453453

454-
void UpdateSurfaceDataNONE( uint32_t*, shaderStage_t*, bool, bool, bool );
455-
void UpdateSurfaceDataNOP( uint32_t*, shaderStage_t*, bool, bool, bool );
456-
void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, bool mayUseVertexOverbright, bool, bool );
457-
void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage, bool, bool vertexLit, bool fullbright );
458-
void UpdateSurfaceDataReflection( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
459-
void UpdateSurfaceDataSkybox( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
460-
void UpdateSurfaceDataScreen( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
461-
void UpdateSurfaceDataHeatHaze( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
462-
void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
463-
void UpdateSurfaceDataFog( uint32_t* materials, shaderStage_t* pStage, bool, bool, bool );
454+
void UpdateSurfaceDataNONE( uint32_t*, shaderStage_t*, bool, bool );
455+
void UpdateSurfaceDataNOP( uint32_t*, shaderStage_t*, bool, bool );
456+
void UpdateSurfaceDataGeneric3D( uint32_t* materials, shaderStage_t* pStage, bool, bool );
457+
void UpdateSurfaceDataLightMapping( uint32_t* materials, shaderStage_t* pStage, bool vertexLit, bool fullbright );
458+
void UpdateSurfaceDataReflection( uint32_t* materials, shaderStage_t* pStage, bool, bool );
459+
void UpdateSurfaceDataSkybox( uint32_t* materials, shaderStage_t* pStage, bool, bool );
460+
void UpdateSurfaceDataScreen( uint32_t* materials, shaderStage_t* pStage, bool, bool );
461+
void UpdateSurfaceDataHeatHaze( uint32_t* materials, shaderStage_t* pStage, bool, bool );
462+
void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool, bool );
463+
void UpdateSurfaceDataFog( uint32_t* materials, shaderStage_t* pStage, bool, bool );
464464

465465
void BindShaderNONE( Material* );
466466
void BindShaderNOP( Material* );

src/engine/renderer/gl_shader.h

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2737,31 +2737,19 @@ struct colorModulation_t {
27372737
float colorGen = 0.0f;
27382738
float alphaGen = 0.0f;
27392739
float lightFactor = 1.0f;
2740-
bool useVertexLightFactor = false;
27412740
};
27422741

27432742
static colorModulation_t ColorModulateColorGen(
27442743
const colorGen_t colorGen,
27452744
const alphaGen_t alphaGen,
2746-
const bool vertexOverbright,
27472745
const bool useMapLightFactor )
27482746
{
27492747
colorModulation_t colorModulation = {};
27502748

27512749
switch ( colorGen )
27522750
{
27532751
case colorGen_t::CGEN_VERTEX:
2754-
if ( vertexOverbright )
2755-
{
2756-
// vertexOverbright is only needed for non-lightmapped cases. When there is a
2757-
// lightmap, this is done by multiplying with the overbright-scaled white image
2758-
colorModulation.useVertexLightFactor = true;
2759-
colorModulation.lightFactor = tr.mapLightFactor;
2760-
}
2761-
else
2762-
{
2763-
colorModulation.colorGen = 1.0f;
2764-
}
2752+
colorModulation.colorGen = 1.0f;
27652753
break;
27662754

27672755
case colorGen_t::CGEN_ONE_MINUS_VERTEX:
@@ -2774,7 +2762,6 @@ static colorModulation_t ColorModulateColorGen(
27742762

27752763
if ( useMapLightFactor )
27762764
{
2777-
DAEMON_ASSERT_EQ( vertexOverbright, false );
27782765
colorModulation.lightFactor = tr.mapLightFactor;
27792766
}
27802767

@@ -2807,20 +2794,18 @@ class u_ColorModulateColorGen_Float :
28072794
void SetUniform_ColorModulateColorGen_Float(
28082795
const colorGen_t colorGen,
28092796
const alphaGen_t alphaGen,
2810-
const bool vertexOverbright = false,
28112797
const bool useMapLightFactor = false )
28122798
{
28132799
GLIMP_LOGCOMMENT( "--- u_ColorModulate::SetUniform_ColorModulateColorGen_Float( "
28142800
"program = %s, colorGen = %s, alphaGen = %s ) ---",
28152801
_shader->_name.c_str(), Util::enum_str( colorGen ), Util::enum_str( alphaGen ) );
28162802

28172803
colorModulation_t colorModulation = ColorModulateColorGen(
2818-
colorGen, alphaGen, vertexOverbright, useMapLightFactor );
2804+
colorGen, alphaGen, useMapLightFactor );
28192805

28202806
vec4_t colorModulate_Float;
28212807
colorModulate_Float[ 0 ] = colorModulation.colorGen;
28222808
colorModulate_Float[ 1 ] = colorModulation.lightFactor;
2823-
colorModulate_Float[ 1 ] *= colorModulation.useVertexLightFactor ? -1.0f : 1.0f;
28242809
colorModulate_Float[ 2 ] = {};
28252810
colorModulate_Float[ 3 ] = colorModulation.alphaGen;
28262811

@@ -2838,23 +2823,21 @@ class u_ColorModulateColorGen_Uint :
28382823
void SetUniform_ColorModulateColorGen_Uint(
28392824
const colorGen_t colorGen,
28402825
const alphaGen_t alphaGen,
2841-
const bool vertexOverbright = false,
28422826
const bool useMapLightFactor = false )
28432827
{
28442828
GLIMP_LOGCOMMENT( "--- u_ColorModulate::SetUniform_ColorModulateColorGen_Uint( "
28452829
"program = %s, colorGen = %s, alphaGen = %s ) ---",
28462830
_shader->_name.c_str(), Util::enum_str( colorGen ), Util::enum_str( alphaGen ) );
28472831

28482832
colorModulation_t colorModulation = ColorModulateColorGen(
2849-
colorGen, alphaGen, vertexOverbright, useMapLightFactor );
2833+
colorGen, alphaGen, useMapLightFactor );
28502834

28512835
enum class ColorModulate_Bit {
28522836
COLOR_ONE = 0,
28532837
COLOR_MINUS_ONE = 1,
28542838
ALPHA_ONE = 2,
28552839
ALPHA_MINUS_ONE = 3,
28562840
// <-- Insert new bits there.
2857-
IS_LIGHT_STYLE = 27,
28582841
LIGHTFACTOR_BIT0 = 28,
28592842
LIGHTFACTOR_BIT1 = 29,
28602843
LIGHTFACTOR_BIT2 = 30,
@@ -2872,8 +2855,6 @@ class u_ColorModulateColorGen_Uint :
28722855
<< Util::ordinal( ColorModulate_Bit::ALPHA_ONE );
28732856
colorModulate_Uint |= ( colorModulation.alphaGen == -1.0f )
28742857
<< Util::ordinal( ColorModulate_Bit::ALPHA_MINUS_ONE );
2875-
colorModulate_Uint |= colorModulation.useVertexLightFactor
2876-
<< Util::ordinal( ColorModulate_Bit::IS_LIGHT_STYLE );
28772858
colorModulate_Uint |= uint32_t( colorModulation.lightFactor )
28782859
<< Util::ordinal( ColorModulate_Bit::LIGHTFACTOR_BIT0 );
28792860

@@ -2885,16 +2866,15 @@ template<typename Shader> void SetUniform_ColorModulateColorGen(
28852866
Shader* shader,
28862867
const colorGen_t colorGen,
28872868
const alphaGen_t alphaGen,
2888-
const bool vertexOverbright = false,
28892869
const bool useMapLightFactor = false )
28902870
{
28912871
if( glConfig.gpuShader4Available )
28922872
{
2893-
shader->SetUniform_ColorModulateColorGen_Uint( colorGen, alphaGen, vertexOverbright, useMapLightFactor );
2873+
shader->SetUniform_ColorModulateColorGen_Uint( colorGen, alphaGen, useMapLightFactor );
28942874
}
28952875
else
28962876
{
2897-
shader->SetUniform_ColorModulateColorGen_Float( colorGen, alphaGen, vertexOverbright, useMapLightFactor );
2877+
shader->SetUniform_ColorModulateColorGen_Float( colorGen, alphaGen, useMapLightFactor );
28982878
}
28992879
}
29002880

src/engine/renderer/glsl_source/common.glsl

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,13 @@ colorMod << 0: color * 1
6868
colorMod << 1: color * ( -1 )
6969
colorMod << 2: alpha * 1
7070
colorMod << 3: alpha * ( -1 )
71-
colorMod << 4-26: available for future usage
72-
colorMod << 27: color += lightFactor
71+
colorMod << 4-27: available for future usage
7372
colorMod << 28-31: lightFactor
7473
7574
colorMod float format:
7675
7776
colorMod[ 0 ]: color * f
78-
colorMod[ 1 ] absolute value: lightFactor
79-
colorMod[ 1 ] minus sign: color += lightFactor
77+
colorMod[ 1 ]: lightFactor
8078
colorMod[ 3 ]: alpha * f */
8179

8280
vec4 ColorModulateToColor( const in colorModulatePack colorMod )
@@ -97,30 +95,12 @@ vec4 ColorModulateToColor( const in colorModulatePack colorMod )
9795
return vec4( rgb, rgb, rgb, alpha );
9896
}
9997

100-
struct ModBits_t
101-
{
102-
bool useVertexLightFactor;
103-
};
104-
105-
ModBits_t ColorModulateToBits( const in colorModulatePack colorMod )
106-
{
107-
ModBits_t modBits;
108-
109-
#if defined(HAVE_EXT_gpu_shader4)
110-
modBits.useVertexLightFactor = bool( ( colorMod >> 27u ) & 1u );
111-
#else
112-
modBits.useVertexLightFactor = colorMod.g < 0;
113-
#endif
114-
115-
return modBits;
116-
}
117-
11898
float ColorModulateToLightFactor( const in colorModulatePack colorMod )
11999
{
120100
#if defined(HAVE_EXT_gpu_shader4)
121101
return float( colorMod >> 28u );
122102
#else
123-
return abs( colorMod.g );
103+
return colorMod.g;
124104
#endif
125105
}
126106

@@ -151,11 +131,8 @@ void ColorModulateColor_lightFactor(
151131
inout vec4 color )
152132
{
153133
vec4 colorModulation = ColorModulateToColor( colorMod );
154-
ModBits_t modBits = ColorModulateToBits( colorMod );
155134
float lightFactor = ColorModulateToLightFactor( colorMod );
156135

157-
colorModulation.rgb += vec3( modBits.useVertexLightFactor ? lightFactor : 0 );
158-
159136
vec4 unpackedColor = UnpackColor( packedColor );
160137

161138
unpackedColor.rgb *= lightFactor;

src/engine/renderer/tr_local.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -968,15 +968,14 @@ enum
968968

969969
using stageRenderer_t = void(*)(shaderStage_t *);
970970
using stageShaderBuildMarker_t = void(*)(const shaderStage_t*);
971-
using surfaceDataUpdater_t = void(*)(uint32_t*, shaderStage_t*, bool, bool, bool);
971+
using surfaceDataUpdater_t = void(*)(uint32_t*, shaderStage_t*, bool, bool);
972972
using stageShaderBinder_t = void(*)(Material*);
973973
using stageMaterialProcessor_t = void(*)(Material*, shaderStage_t*, MaterialSurface*);
974974

975975
enum ShaderStageVariant {
976-
VERTEX_OVERBRIGHT = 1,
977-
VERTEX_LIT = BIT( 1 ),
978-
FULLBRIGHT = BIT( 2 ),
979-
ALL = BIT( 3 )
976+
VERTEX_LIT = BIT( 0 ),
977+
FULLBRIGHT = BIT( 1 ),
978+
ALL = BIT( 2 )
980979
};
981980

982981
struct shaderStage_t

0 commit comments

Comments
 (0)