Hi Aurelien,

I have now modified osg::State::apply() and osg::State::apply(const
StateSet*) to allow the _currentShaderCompositionUniformList to be
checked and applied even when shader composition isn't active.  This
will enable custom StateAttribute to call
state.applyShaderCompositionUniform() i.e.


MyMatierial::apply(osg::State& state)
{
    if (_frontAndBack)
    {
       state.applyShaderCompositionUniform(_ambiientFrontAndBack.get());
       state.applyShaderCompositionUniform(_diffuseFrontAndBack.get());
       state.applyShaderCompositionUniform(_emissionFrontAndBack.get());
       state.applyShaderCompositionUniform(_shininessFrontAndBack.get());
  }
  else
  {
       state.applyShaderCompositionUniform(_ambiientFront.get());
       state.applyShaderCompositionUniform(_ambiientBack.get());
       state.applyShaderCompositionUniform(_diffuseFront.get());
       state.applyShaderCompositionUniform(_diffuseBack.get());
       state.applyShaderCompositionUniform(_emissionFront.get());
       state.applyShaderCompositionUniform(_emissionBack.get());
       state.applyShaderCompositionUniform(_shininessFront.get());
       state.applyShaderCompositionUniform(_shininessBack.get());
   }
}

Or what ever you want to go for.

Robert.
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to