[osg-users] MFC Fullscreen With Multiple Monitors
spowers at gdrs.com
spowers at gdrs.com
Mon Jul 7 08:41:17 PDT 2008
I'm having a problem with inheriting window data from an MFC window in
OSG 2.2.
When I run an application with a dual monitor display the application
runs and OSG starts but it starts in fullscreen mode rather than
inheriting the MFC window size and location.
When I run the same application on the same machine but with only a
single monitor the OSG inherits the MFC window correctly.
Is there something that I'm missing?
Here is the code I use to create the window (borrowed from the MFC
viewer example):
// Local Variable to hold window size data
RECT rect;
// Create the viewer for this window
mViewer = new osgViewer::Viewer();
//// Add a Stats Handler to the viewer
mViewer->addEventHandler(new osgViewer::StatsHandler);
//// Get the current window size
::GetWindowRect(m_hWnd, &rect);
//// Init the GraphicsContext Traits
osg::ref_ptr<osg::GraphicsContext::Traits> traits = new
osg::GraphicsContext::Traits;
//// Init the Windata Variable that holds the handle for the
Window to display OSG in.
osg::ref_ptr<osg::Referenced> windata = new
osgViewer::GraphicsWindowWin32::WindowData(m_hWnd);
// Setup the traits parameters
traits->x = 0;
traits->y = 0;
traits->width = rect.right - rect.left;
traits->height = rect.bottom - rect.top;
traits->windowDecoration = false;
traits->doubleBuffer = true;
traits->sharedContext = 0;
traits->setInheritedWindowPixelFormat = true;
traits->inheritedWindowData = windata;
// Create the Graphics Context
osg::GraphicsContext* gc =
osg::GraphicsContext::createGraphicsContext(traits.get());
// Init a new Camera (Master for this View)
_camera = new osg::Camera;
// Assign Graphics Context to the Camera
_camera->setGraphicsContext(gc);
// Set the viewport for the Camera
_camera->setViewport(new osg::Viewport(traits->x, traits->y,
traits->width, traits->height));
// Add the Camera to the Viewer
mViewer->addSlave(_camera.get());
// Add the Camera Manipulator to the Viewer
//mViewer->setCameraManipulator(keyswitchManipulator.get());
// Set the Scene Data
mViewer->setSceneData(mRoot.get());
// Realize the Viewer
//mViewer->getCamera()->setViewport(traits->x, traits->y,
traits->width, traits->height);
mViewer->realize();
Thanks -Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080707/eb9fe8e2/attachment-0002.htm>
More information about the osg-users
mailing list