From e9e0b4304d3026a6833bcf086e96ebae9324b66f Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 4 Apr 2003 11:06:09 +0000 Subject: [PATCH] Improved support for toggle between full screen and non fullscreen in the osgProducer::Viewer. --- include/osgProducer/ViewerEventHandler | 2 ++ src/osgProducer/OsgCameraGroup.cpp | 4 ++-- src/osgProducer/Viewer.cpp | 2 +- src/osgProducer/ViewerEventHandler.cpp | 17 ++++++++++++++--- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/include/osgProducer/ViewerEventHandler b/include/osgProducer/ViewerEventHandler index 30a4e59e4..d717b1036 100644 --- a/include/osgProducer/ViewerEventHandler +++ b/include/osgProducer/ViewerEventHandler @@ -63,6 +63,8 @@ class ViewerEventHandler : public osgGA::GUIEventHandler bool _displayHelp; FrameStatsMode _frameStatsMode; + + bool _firstTimeTogglingFullScreen; }; } diff --git a/src/osgProducer/OsgCameraGroup.cpp b/src/osgProducer/OsgCameraGroup.cpp index a7f98e711..332d476c7 100644 --- a/src/osgProducer/OsgCameraGroup.cpp +++ b/src/osgProducer/OsgCameraGroup.cpp @@ -76,9 +76,9 @@ std::string extractCameraConfigFile(osg::ArgumentParser& arguments) if (arguments.read("-c",filename)) return findCameraConfigFile(filename); char *ptr; - if( (ptr = getenv( "PRODUCE_CAMERA_CONFIG_FILE" )) ) + if( (ptr = getenv( "PRODUCER_CAMERA_CONFIG_FILE" )) ) { - osg::notify(osg::DEBUG_INFO) << "PRODUCE_CAMERA_CONFIG_FILE("<getCurrentCameraManipulator()) { diff --git a/src/osgProducer/ViewerEventHandler.cpp b/src/osgProducer/ViewerEventHandler.cpp index edd02c1b5..eebdb64a9 100644 --- a/src/osgProducer/ViewerEventHandler.cpp +++ b/src/osgProducer/ViewerEventHandler.cpp @@ -662,7 +662,7 @@ void DrawCallback::createStatsText() _drawTimes.push_back(0.0); - pos.x() = cullField->getBound().xMax(); + pos.y() -= characterSize; } @@ -674,7 +674,8 @@ ViewerEventHandler::ViewerEventHandler(OsgCameraGroup* cg): _cg(cg), _writeNodeFileName("saved_model.osg"), _displayHelp(false), - _frameStatsMode(NO_STATS) + _frameStatsMode(NO_STATS), + _firstTimeTogglingFullScreen(true) { Producer::CameraConfig* cfg = _cg->getCameraConfig(); Producer::Camera *cam = cfg->getCamera(0); @@ -716,8 +717,18 @@ bool ViewerEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActio { Producer::Camera *cam = cfg->getCamera(i); Producer::RenderSurface* rs = cam->getRenderSurface(); - rs->fullScreen(!rs->isFullScreen()); + + if (_firstTimeTogglingFullScreen && rs->isFullScreen()) + { + rs->setWindowRect(240,220,800,600); + rs->useBorder(true); + } + else + { + rs->fullScreen(!rs->isFullScreen()); + } } + _firstTimeTogglingFullScreen = false; return true; }