From e5b67a6795d9b354f7e36eb82e1a10771c05e7cc Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 15 Mar 2018 16:50:47 +0000 Subject: [PATCH] Removed the static osg::Program creation as it's not required --- src/osgUtil/ShaderGen.cpp | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/osgUtil/ShaderGen.cpp b/src/osgUtil/ShaderGen.cpp index e67eaba58..7960a3052 100644 --- a/src/osgUtil/ShaderGen.cpp +++ b/src/osgUtil/ShaderGen.cpp @@ -30,21 +30,6 @@ using namespace osgUtil; namespace osgUtil { -osg::ref_ptr s_UberProgram; - -struct UberProgramConstructor -{ - UberProgramConstructor() - { - s_UberProgram = new osg::Program; - s_UberProgram->addShader(new osg::Shader(osg::Shader::VERTEX, shadergen_vert)); - s_UberProgram->addShader(new osg::Shader(osg::Shader::FRAGMENT, shadergen_frag)); - } -}; - -UberProgramConstructor s_UberProgramConstructor; - - ShaderGenVisitor::ShaderGenVisitor(): osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { @@ -54,7 +39,11 @@ void ShaderGenVisitor::assignUberProgram(osg::StateSet *stateSet) { if (stateSet) { - stateSet->setAttribute(s_UberProgram.get()); + osg::ref_ptr uberProgram = new osg::Program; + uberProgram->addShader(new osg::Shader(osg::Shader::VERTEX, shadergen_vert)); + uberProgram->addShader(new osg::Shader(osg::Shader::FRAGMENT, shadergen_frag)); + + stateSet->setAttribute(uberProgram.get()); stateSet->addUniform(new osg::Uniform("diffuseMap", 0)); remapStateSet(stateSet);