diff --git a/src/osgViewer/View.cpp b/src/osgViewer/View.cpp index 8de1ae2f8..7bf29bef6 100644 --- a/src/osgViewer/View.cpp +++ b/src/osgViewer/View.cpp @@ -452,7 +452,7 @@ void View::apply(ViewConfig* config) { if (config) { - OSG_NOTICE<<"Applying osgViewer::ViewConfig : "<className()<className()<configure(*this); } _lastAppliedViewConfig = config; @@ -1413,9 +1413,9 @@ void View::assignStereoOrKeystoneToCamera(osg::Camera* camera, osg::DisplaySetti // set up view's main camera { - double height = osg::DisplaySettings::instance()->getScreenHeight(); - double width = osg::DisplaySettings::instance()->getScreenWidth(); - double distance = osg::DisplaySettings::instance()->getScreenDistance(); + double height = ds->getScreenHeight(); + double width = ds->getScreenWidth(); + double distance = ds->getScreenDistance(); double vfov = osg::RadiansToDegrees(atan2(height/2.0f,distance)*2.0); camera->setProjectionMatrixAsPerspective( vfov, width/height, 1.0f,10000.0f); diff --git a/src/osgViewer/config/AcrossAllScreens.cpp b/src/osgViewer/config/AcrossAllScreens.cpp index 7562ed6ce..dd2206d2c 100644 --- a/src/osgViewer/config/AcrossAllScreens.cpp +++ b/src/osgViewer/config/AcrossAllScreens.cpp @@ -12,6 +12,7 @@ */ #include +#include #include #include #include @@ -43,52 +44,8 @@ void AcrossAllScreens::configure(osgViewer::View& view) const unsigned int numScreens = wsi->getNumScreens(si); if (numScreens==1) { - if (si.screenNum<0) si.screenNum = 0; - - unsigned int width, height; - wsi->getScreenResolution(si, width, height); - - osg::ref_ptr traits = new osg::GraphicsContext::Traits(ds); - traits->hostName = si.hostName; - traits->displayNum = si.displayNum; - traits->screenNum = si.screenNum; - traits->x = 0; - traits->y = 0; - traits->width = width; - traits->height = height; - traits->windowDecoration = false; - traits->doubleBuffer = true; - traits->sharedContext = 0; - - osg::ref_ptr gc = osg::GraphicsContext::createGraphicsContext(traits.get()); - - view.getCamera()->setGraphicsContext(gc.get()); - - osgViewer::GraphicsWindow* gw = dynamic_cast(gc.get()); - if (gw) - { - OSG_INFO<<" GraphicsWindow has been created successfully."<getEventQueue()->getCurrentEventState()->setWindowRectangle(0, 0, width, height ); - } - else - { - OSG_NOTICE<<" GraphicsWindow has not been created successfully."<width) / double(traits->height); - double aspectRatioChange = newAspectRatio / aspectRatio; - if (aspectRatioChange != 1.0) - { - view.getCamera()->getProjectionMatrix() *= osg::Matrix::scale(1.0/aspectRatioChange,1.0,1.0); - } - - view.getCamera()->setViewport(new osg::Viewport(0, 0, traits->width, traits->height)); - - GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT; - - view.getCamera()->setDrawBuffer(buffer); - view.getCamera()->setReadBuffer(buffer); - + osg::ref_ptr ss = new SingleScreen(0); + ss->configure(view); } else { diff --git a/src/osgViewer/config/SingleWindow.cpp b/src/osgViewer/config/SingleWindow.cpp index 32e81ee41..3a1ce6349 100644 --- a/src/osgViewer/config/SingleWindow.cpp +++ b/src/osgViewer/config/SingleWindow.cpp @@ -82,6 +82,7 @@ void SingleWindow::configure(osgViewer::View& view) const else { OSG_NOTICE<<" GraphicsWindow has not been created successfully."<setDrawBuffer(buffer); view.getCamera()->setReadBuffer(buffer); - OSG_NOTICE<<"Here"<getKeystoneHint()) { if (ds->getKeystoneHint() && !ds->getKeystoneFileNames().empty())