minor refactor
This commit is contained in:
parent
b04dbd5809
commit
a0b8776477
@ -76,6 +76,14 @@ void GLSLExtension::undefine(const std::string& name) {
|
||||
}
|
||||
}
|
||||
|
||||
void GLSLExtension::setDefined(const std::string& name, bool defined) {
|
||||
if (defined) {
|
||||
define(name, "TRUE");
|
||||
} else {
|
||||
undefine(name);
|
||||
}
|
||||
}
|
||||
|
||||
inline std::runtime_error parsing_error(
|
||||
const io::path& file, uint linenum, const std::string& message
|
||||
) {
|
||||
|
||||
@ -22,6 +22,7 @@ public:
|
||||
|
||||
void define(const std::string& name, std::string value);
|
||||
void undefine(const std::string& name);
|
||||
void setDefined(const std::string& name, bool defined);
|
||||
void addHeader(const std::string& name, ProcessingResult header);
|
||||
|
||||
const ProcessingResult& getHeader(const std::string& name) const;
|
||||
|
||||
@ -447,30 +447,16 @@ void WorldRenderer::draw(
|
||||
CompileTimeShaderSettings currentSettings {
|
||||
gbufferPipeline,
|
||||
shadows,
|
||||
settings.graphics.ssao.get() && gbufferPipeline};
|
||||
settings.graphics.ssao.get() && gbufferPipeline
|
||||
};
|
||||
if (
|
||||
prevCTShaderSettings.advancedRender != currentSettings.advancedRender ||
|
||||
prevCTShaderSettings.shadows != currentSettings.shadows ||
|
||||
prevCTShaderSettings.ssao != currentSettings.ssao
|
||||
) {
|
||||
if (shadows) {
|
||||
Shader::preprocessor->define("ENABLE_SHADOWS", "true");
|
||||
} else {
|
||||
Shader::preprocessor->undefine("ENABLE_SHADOWS");
|
||||
}
|
||||
|
||||
if (currentSettings.ssao) {
|
||||
Shader::preprocessor->define("ENABLE_SSAO", "true");
|
||||
} else {
|
||||
Shader::preprocessor->undefine("ENABLE_SSAO");
|
||||
}
|
||||
|
||||
if (gbufferPipeline) {
|
||||
Shader::preprocessor->define("ADVANCED_RENDER", "true");
|
||||
} else {
|
||||
Shader::preprocessor->undefine("ADVANCED_RENDER");
|
||||
}
|
||||
|
||||
Shader::preprocessor->setDefined("ENABLE_SHADOWS", currentSettings.shadows);
|
||||
Shader::preprocessor->setDefined("ENABLE_SSAO", currentSettings.ssao);
|
||||
Shader::preprocessor->setDefined("ADVANCED_RENDER", currentSettings.advancedRender);
|
||||
mainShader.recompile();
|
||||
entityShader.recompile();
|
||||
deferredShader.recompile();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user