Added support for osg::State::s/getInitialViewMatrix();

Added slideshow3D examples to the runexamples.bat.

Fixed DatabasePager to work with the latest OpenThreads.
This commit is contained in:
Robert Osfield 2003-07-22 21:03:59 +00:00
parent 00e7e10a26
commit ee30f2e30c
5 changed files with 20 additions and 9 deletions

View File

@ -87,6 +87,14 @@ class SG_EXPORT State : public Referenced
}
inline void setInitialViewMatrix(const osg::RefMatrix* matrix)
{
if (matrix) _initialViewMatrix = matrix;
else _initialViewMatrix = _identity;
}
inline const osg::Matrix& getInitialViewMatrix() const { return *_initialViewMatrix; }
inline void applyProjectionMatrix(const osg::RefMatrix* matrix)
{
if (_projection!=matrix)
@ -106,7 +114,7 @@ class SG_EXPORT State : public Referenced
}
}
const osg::Matrix& getProjectionMatrix() const
inline const osg::Matrix& getProjectionMatrix() const
{
return *_projection;
}
@ -630,6 +638,7 @@ class SG_EXPORT State : public Referenced
ref_ptr<FrameStamp> _frameStamp;
ref_ptr<const RefMatrix> _identity;
ref_ptr<const RefMatrix> _initialViewMatrix;
ref_ptr<const RefMatrix> _projection;
ref_ptr<const RefMatrix> _modelView;

View File

@ -4,6 +4,12 @@ osgversion
echo osglogo
osglogo
echo slideshow3D introduction.xml
slideshow3D introduction.xml
echo slideshow3D models.xml
slideshow3D models.xml
echo osgviewer cow.osg
osgviewer cow.osg

View File

@ -23,6 +23,7 @@ State::State()
{
_contextID = 0;
_identity = new osg::RefMatrix(); // default RefMatrix constructs to identity.
_initialViewMatrix = _identity;
_projection = _identity;
_modelView = _identity;

View File

@ -260,14 +260,8 @@ void DatabasePager::run()
}
// // hack hack hack... sleep for 1ms so we give other threads a chance..
// #ifdef WIN32
// Sleep(1);
// #else
// usleep(1000);
// #endif
yield();
// go to sleep till our the next time our thread gets scheduled.
Yield();
}

View File

@ -553,6 +553,7 @@ void SceneView::draw()
//osg::Timer_t tend = timer.tick();
//std::cout<<"time to flush rendering objects"<<timer.delta_m(tstart,tend)<<std::endl;
if (_viewMatrix.valid()) _state->setInitialViewMatrix(_viewMatrix.get());
RenderLeaf* previous = NULL;
if (_displaySettings.valid() && _displaySettings->getStereo())