From 573fc6fe13313e3da76207746f5e746601c9c74b Mon Sep 17 00:00:00 2001 From: Almamu Date: Fri, 9 May 2025 02:43:48 +0200 Subject: [PATCH] chore: fix pass uniforms not taking into account fragment shader's uniforms chore: keep processed code in the shader sent to opengl so it appears on RenderDoc --- .../Core/Objects/Effects/Constants/CShaderConstantProperty.cpp | 2 +- .../Core/Objects/Effects/Constants/CShaderConstantProperty.h | 2 +- src/WallpaperEngine/Render/Objects/Effects/CPass.cpp | 2 +- src/WallpaperEngine/Render/Shaders/CGLSLContext.cpp | 2 +- src/WallpaperEngine/Render/Shaders/CShaderUnit.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.cpp b/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.cpp index 3e44521..18fbc99 100644 --- a/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.cpp +++ b/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.cpp @@ -3,7 +3,7 @@ using namespace WallpaperEngine::Core::Objects::Effects::Constants; -CShaderConstantProperty::CShaderConstantProperty (std::shared_ptr property) { +CShaderConstantProperty::CShaderConstantProperty (const std::shared_ptr & property) { property->connectOutgoing (this); } diff --git a/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.h b/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.h index c936e76..2ce8c86 100644 --- a/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.h +++ b/src/WallpaperEngine/Core/Objects/Effects/Constants/CShaderConstantProperty.h @@ -13,7 +13,7 @@ using namespace WallpaperEngine::Core::Projects; */ class CShaderConstantProperty : public CShaderConstant { public: - explicit CShaderConstantProperty (std::shared_ptr property); + explicit CShaderConstantProperty (const std::shared_ptr & property); [[nodiscard]] std::string toString () const override; }; diff --git a/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp b/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp index 4f08389..dba9467 100644 --- a/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp +++ b/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp @@ -675,7 +675,7 @@ void CPass::setupShaderVariables () { if (this->m_uniforms.find (cur->getName ()) == this->m_uniforms.end ()) this->addUniform (cur); - for (const auto& cur : this->m_shader->getVertex ().getParameters ()) + for (const auto& cur : this->m_shader->getFragment ().getParameters ()) if (this->m_uniforms.find (cur->getName ()) == this->m_uniforms.end ()) this->addUniform (cur); diff --git a/src/WallpaperEngine/Render/Shaders/CGLSLContext.cpp b/src/WallpaperEngine/Render/Shaders/CGLSLContext.cpp index f82211e..4892f53 100644 --- a/src/WallpaperEngine/Render/Shaders/CGLSLContext.cpp +++ b/src/WallpaperEngine/Render/Shaders/CGLSLContext.cpp @@ -191,7 +191,7 @@ std::pair CGLSLContext::toGlsl (const std::string& ver options.es = false; fragmentCompiler .set_common_options(options); - return {vertexCompiler.compile(), fragmentCompiler.compile()}; + return {vertexCompiler.compile() + "#if 0\n" + vertex + "#endif", fragmentCompiler.compile() + "#if 0\n" + fragment + "#endif"}; } diff --git a/src/WallpaperEngine/Render/Shaders/CShaderUnit.cpp b/src/WallpaperEngine/Render/Shaders/CShaderUnit.cpp index 7199287..e218d42 100644 --- a/src/WallpaperEngine/Render/Shaders/CShaderUnit.cpp +++ b/src/WallpaperEngine/Render/Shaders/CShaderUnit.cpp @@ -383,7 +383,7 @@ void CShaderUnit::parseParameterConfiguration ( // TODO: SUPPORT VALUES FOR ALL THESE TYPES // TODO: MAYBE EVEN CONNECT THESE TO THE CORRESPONDING PROPERTY SO THINGS ARE UPDATED AS THE ORIGIN VALUES CHANGE? if (type == "vec4") { - parameter = new Variables::CShaderVariableVector4(WallpaperEngine::Core::aToVector4 (*defvalue)); + parameter = new Variables::CShaderVariableVector4 (WallpaperEngine::Core::aToVector4 (*defvalue)); } else if (type == "vec3") { parameter = new Variables::CShaderVariableVector3 (WallpaperEngine::Core::aToVector3 (*defvalue)); } else if (type == "vec2") {