add 'do-trace-shaders' setting and fix shaders recompiling

This commit is contained in:
MihailRis
2025-08-31 18:14:05 +03:00
parent 5e3373313b
commit a621b179d3
10 changed files with 84 additions and 26 deletions
+6 -4
View File
@@ -321,11 +321,13 @@ void WorldRenderer::renderFrame(
prevCTShaderSettings.shadows != currentSettings.shadows ||
prevCTShaderSettings.ssao != currentSettings.ssao
) {
Shader::preprocessor->setDefined("ENABLE_SHADOWS", currentSettings.shadows);
Shader::preprocessor->setDefined("ENABLE_SSAO", currentSettings.ssao);
Shader::preprocessor->setDefined("ADVANCED_RENDER", currentSettings.advancedRender);
std::vector<std::string> defines;
if (currentSettings.shadows) defines.emplace_back("ENABLE_SHADOWS");
if (currentSettings.ssao) defines.emplace_back("ENABLE_SSAO");
if (currentSettings.advancedRender) defines.emplace_back("ADVANCED_RENDER");
for (auto shader : affectedShaders) {
shader->recompile();
shader->recompile(defines);
}
prevCTShaderSettings = currentSettings;
}