@@ -1011,7 +1011,7 @@ void ProcessMaterialGeneric3D( Material* material, shaderStage_t* pStage, Materi
10111011 material->hasDepthFade = hasDepthFade;
10121012 gl_genericShaderMaterial->SetDepthFade ( hasDepthFade );
10131013
1014- material->program = gl_genericShaderMaterial->GetProgram ( pStage->deformIndex );
1014+ material->program = gl_genericShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10151015}
10161016
10171017void ProcessMaterialLightMapping ( Material* material, shaderStage_t* pStage, MaterialSurface* surface ) {
@@ -1027,8 +1027,6 @@ void ProcessMaterialLightMapping( Material* material, shaderStage_t* pStage, Mat
10271027 bool enableGridLighting = ( lightMode == lightMode_t::GRID );
10281028 bool enableGridDeluxeMapping = ( deluxeMode == deluxeMode_t::GRID );
10291029
1030- DAEMON_ASSERT ( !( enableDeluxeMapping && enableGridDeluxeMapping ) );
1031-
10321030 material->enableDeluxeMapping = enableDeluxeMapping;
10331031 material->enableGridLighting = enableGridLighting;
10341032 material->enableGridDeluxeMapping = enableGridDeluxeMapping;
@@ -1053,7 +1051,7 @@ void ProcessMaterialLightMapping( Material* material, shaderStage_t* pStage, Mat
10531051
10541052 gl_lightMappingShaderMaterial->SetPhysicalShading ( pStage->enablePhysicalMapping );
10551053
1056- material->program = gl_lightMappingShaderMaterial->GetProgram ( pStage->deformIndex );
1054+ material->program = gl_lightMappingShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10571055}
10581056
10591057void ProcessMaterialReflection ( Material* material, shaderStage_t* pStage, MaterialSurface* /* surface */ ) {
@@ -1067,31 +1065,31 @@ void ProcessMaterialReflection( Material* material, shaderStage_t* pStage, Mater
10671065
10681066 gl_reflectionShaderMaterial->SetReliefMapping ( pStage->enableReliefMapping );
10691067
1070- material->program = gl_reflectionShaderMaterial->GetProgram ( pStage->deformIndex );
1068+ material->program = gl_reflectionShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10711069}
10721070
10731071void ProcessMaterialSkybox ( Material* material, shaderStage_t* pStage, MaterialSurface* /* surface */ ) {
10741072 material->shader = gl_skyboxShaderMaterial;
10751073
10761074 material->deformIndex = pStage->deformIndex ;
10771075
1078- material->program = gl_skyboxShaderMaterial->GetProgram ( pStage->deformIndex );
1076+ material->program = gl_skyboxShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10791077}
10801078
10811079void ProcessMaterialScreen ( Material* material, shaderStage_t* pStage, MaterialSurface* /* surface */ ) {
10821080 material->shader = gl_screenShaderMaterial;
10831081
10841082 material->deformIndex = pStage->deformIndex ;
10851083
1086- material->program = gl_screenShaderMaterial->GetProgram ( pStage->deformIndex );
1084+ material->program = gl_screenShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10871085}
10881086
10891087void ProcessMaterialHeatHaze ( Material* material, shaderStage_t* pStage, MaterialSurface* ) {
10901088 material->shader = gl_heatHazeShaderMaterial;
10911089
10921090 material->deformIndex = pStage->deformIndex ;
10931091
1094- material->program = gl_heatHazeShaderMaterial->GetProgram ( pStage->deformIndex );
1092+ material->program = gl_heatHazeShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
10951093}
10961094
10971095void ProcessMaterialLiquid ( Material* material, shaderStage_t* pStage, MaterialSurface* surface ) {
@@ -1115,14 +1113,14 @@ void ProcessMaterialLiquid( Material* material, shaderStage_t* pStage, MaterialS
11151113
11161114 gl_liquidShaderMaterial->SetGridLighting ( lightMode == lightMode_t::GRID );
11171115
1118- material->program = gl_liquidShaderMaterial->GetProgram ( pStage->deformIndex );
1116+ material->program = gl_liquidShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
11191117}
11201118
11211119void ProcessMaterialFog ( Material* material, shaderStage_t* pStage, MaterialSurface* surface ) {
11221120 material->shader = gl_fogQuake3ShaderMaterial;
11231121 material->fog = surface->fog ;
11241122
1125- material->program = gl_fogQuake3ShaderMaterial->GetProgram ( pStage->deformIndex );
1123+ material->program = gl_fogQuake3ShaderMaterial->GetProgram ( pStage->deformIndex , materialSystem. buildOneShader );
11261124}
11271125
11281126void MaterialSystem::AddStage ( MaterialSurface* surface, shaderStage_t* pStage, uint32_t stage,
@@ -1742,6 +1740,8 @@ void MaterialSystem::Free() {
17421740 }
17431741 }
17441742
1743+ buildOneShader = true ;
1744+
17451745 totalDrawSurfs = 0 ;
17461746
17471747 currentFrame = 0 ;
0 commit comments