Made the use of the new projection and modelview matrix uniforms optional
This commit is contained in:
@@ -44,6 +44,7 @@ State::State():
|
||||
_projection = _identity;
|
||||
_modelView = _identity;
|
||||
|
||||
_useModelViewAndProjectionUniforms = false;
|
||||
_modelViewMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ModelViewMatrix");
|
||||
_projectionMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ProjectionMatrix");
|
||||
_modelViewProjectionMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ModelViewProjectionMatrix");
|
||||
|
||||
@@ -57,7 +57,7 @@ void RenderLeaf::render(osg::RenderInfo& renderInfo,RenderLeaf* previous)
|
||||
|
||||
// if we are using osg::Program which requires OSG's generated uniforms to track
|
||||
// modelview and projection matrices then apply them now.
|
||||
state.applyModelViewAndProjectionUniformsIfRequired();
|
||||
if (state.getUseModelViewAndProjectionUniforms()) state.applyModelViewAndProjectionUniformsIfRequired();
|
||||
|
||||
// draw the drawable
|
||||
_drawable->draw(renderInfo);
|
||||
@@ -75,7 +75,7 @@ void RenderLeaf::render(osg::RenderInfo& renderInfo,RenderLeaf* previous)
|
||||
|
||||
// if we are using osg::Program which requires OSG's generated uniforms to track
|
||||
// modelview and projection matrices then apply them now.
|
||||
state.applyModelViewAndProjectionUniformsIfRequired();
|
||||
if (state.getUseModelViewAndProjectionUniforms()) state.applyModelViewAndProjectionUniformsIfRequired();
|
||||
|
||||
// draw the drawable
|
||||
_drawable->draw(renderInfo);
|
||||
|
||||
@@ -167,6 +167,16 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
|
||||
__C5_osg_Matrix_R1__getModelViewMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setUseModelViewAndProjectionUniforms, IN, bool, flag,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setUseModelViewAndProjectionUniforms__bool,
|
||||
"",
|
||||
"");
|
||||
I_Method0(bool, getUseModelViewAndProjectionUniforms,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__getUseModelViewAndProjectionUniforms,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, applyModelViewAndProjectionUniformsIfRequired,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__applyModelViewAndProjectionUniformsIfRequired,
|
||||
@@ -928,6 +938,9 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
|
||||
I_SimpleProperty(unsigned int, StateSetStackSize,
|
||||
__unsigned_int__getStateSetStackSize,
|
||||
0);
|
||||
I_SimpleProperty(bool, UseModelViewAndProjectionUniforms,
|
||||
__bool__getUseModelViewAndProjectionUniforms,
|
||||
__void__setUseModelViewAndProjectionUniforms__bool);
|
||||
I_SimpleProperty(const osg::Array *, VertexPointer,
|
||||
0,
|
||||
__void__setVertexPointer__C5_Array_P1);
|
||||
|
||||
Reference in New Issue
Block a user