Added osg_DeltaFrameTime uniform to default set.
This commit is contained in:
@@ -135,10 +135,12 @@ class OSGUTIL_EXPORT SceneView : public osg::Referenced, public osg::CullSetting
|
||||
{
|
||||
FRAME_NUMBER_UNIFORM = 0x1,
|
||||
FRAME_TIME_UNIFORM = 0x2,
|
||||
VIEW_MATRIX_UNIFORM = 0x4,
|
||||
INVERSE_VIEW_MATRIX_UNIFORM = 0x8,
|
||||
DELTA_FRAME_TIME_UNIFORM = 0x4,
|
||||
VIEW_MATRIX_UNIFORM = 0x8,
|
||||
INVERSE_VIEW_MATRIX_UNIFORM = 0x16,
|
||||
DEFAULT_UNIFORMS = FRAME_NUMBER_UNIFORM |
|
||||
FRAME_TIME_UNIFORM |
|
||||
DELTA_FRAME_TIME_UNIFORM |
|
||||
VIEW_MATRIX_UNIFORM |
|
||||
INVERSE_VIEW_MATRIX_UNIFORM,
|
||||
ALL_UNIFORMS = 0xFFFFFFFF
|
||||
@@ -507,7 +509,8 @@ class OSGUTIL_EXPORT SceneView : public osg::Referenced, public osg::CullSetting
|
||||
|
||||
bool _requiresFlush;
|
||||
|
||||
int _activeUniforms;
|
||||
int _activeUniforms;
|
||||
double _previousFrameTime;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -54,6 +54,8 @@ SceneView::SceneView(DisplaySettings* ds)
|
||||
_requiresFlush = true;
|
||||
|
||||
_activeUniforms = DEFAULT_UNIFORMS;
|
||||
|
||||
_previousFrameTime = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -207,7 +209,16 @@ void SceneView::updateUniforms()
|
||||
osg::Uniform* uniform = _localStateSet->getOrCreateUniform("osg_FrameTime",osg::Uniform::FLOAT);
|
||||
uniform->set(static_cast<float>(_frameStamp->getReferenceTime()));
|
||||
}
|
||||
|
||||
|
||||
if ((_activeUniforms & DELTA_FRAME_TIME_UNIFORM) && _frameStamp.valid())
|
||||
{
|
||||
float delta_frame_time = (_previousFrameTime != 0.0) ? static_cast<float>(_frameStamp->getReferenceTime()-_previousFrameTime) : 0.0f;
|
||||
_previousFrameTime = _frameStamp->getReferenceTime();
|
||||
|
||||
osg::Uniform* uniform = _localStateSet->getOrCreateUniform("osg_DeltaFrameTime",osg::Uniform::FLOAT);
|
||||
uniform->set(delta_frame_time);
|
||||
}
|
||||
|
||||
if (_activeUniforms & VIEW_MATRIX_UNIFORM)
|
||||
{
|
||||
osg::Uniform* uniform = _localStateSet->getOrCreateUniform("osg_ViewMatrix",osg::Uniform::FLOAT_MAT4);
|
||||
|
||||
Reference in New Issue
Block a user