From a41ce42208350b2fdb7a93efa4db9d0653b882d8 Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Thu, 18 Oct 2018 16:00:51 +0100 Subject: [PATCH] Move setting of colorMode to ShaderRequirements in case they're reused --- components/shader/shadervisitor.cpp | 5 ++++- components/shader/shadervisitor.hpp | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/shader/shadervisitor.cpp b/components/shader/shadervisitor.cpp index 457da5c77..fad43a3a1 100644 --- a/components/shader/shadervisitor.cpp +++ b/components/shader/shadervisitor.cpp @@ -23,6 +23,7 @@ namespace Shader ShaderVisitor::ShaderRequirements::ShaderRequirements() : mShaderRequired(false) + , mColorMode(2) , mMaterialOverridden(false) , mNormalHeight(false) , mTexStageRequiringTangents(-1) @@ -257,7 +258,7 @@ namespace Shader break; } - writableStateSet->addUniform(new osg::Uniform("colorMode", colorMode)); + mRequirements.back().mColorMode = colorMode; } } } @@ -303,6 +304,8 @@ namespace Shader defineMap["parallax"] = reqs.mNormalHeight ? "1" : "0"; + writableStateSet->addUniform(new osg::Uniform("colorMode", reqs.mColorMode)); + osg::ref_ptr vertexShader (mShaderManager.getShader(mDefaultVsTemplate, defineMap, osg::Shader::VERTEX)); osg::ref_ptr fragmentShader (mShaderManager.getShader(mDefaultFsTemplate, defineMap, osg::Shader::FRAGMENT)); diff --git a/components/shader/shadervisitor.hpp b/components/shader/shadervisitor.hpp index eab75acbb..8737baf59 100644 --- a/components/shader/shadervisitor.hpp +++ b/components/shader/shadervisitor.hpp @@ -81,6 +81,8 @@ namespace Shader bool mShaderRequired; + int mColorMode; + bool mMaterialOverridden; bool mNormalHeight; // true if normal map has height info in alpha channel