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