Hi all (again), and thanks for your help in the past.
We have now shipped an application using OpenSceneGraph for the 3D viewports of
a model. We are now receiving a couple of bug-reports (2 so far) from users
running the application on laptops with Intel integrated graphics (GMA 950 and
3100). We are using OpenSceneGraph in an MFC window in the application, but
whenever these two users open the viewport window (and thus starting the
OpenSceneGraph part of the application), the OpenSceneGraph viewer starts in
fullscreen (no menus or windows bar visible), which of course means that they
have to use the task manager to quit the application.
Both users are using Windows XP pro. The OSG version used is 2.6.1, compiled
with Visual Studio 2005 SP1 under Vista. The application is using MFC, and the
OpenSceneGraph viewport is based on the MFCViewer example. The code for
creating the viewer can be found below. Does anybody know why OSG suddenly will
be forced to work in fullscreen, and is it generally because of some specific
lack of OpenGL support?
Any help will be much appreciated.
--- Code: --------------
void cOSG::InitCameraConfig(void)
{
// Local Variable to hold window size data
RECT rect;
// Create the viewer for this window
mViewer = new osgViewer::Viewer();
mViewer->setThreadingModel(osgViewer::Viewer::SingleThreaded);
// 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 = mViewer->getCamera();
// 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->setCamera(camera.get());
// Add the Camera Manipulator to the Viewer
//-----------------Picking Test--------------
mViewer->addEventHandler(m_PickHandler.get());
//-------------------------------------------
// Set the Scene Data
mViewer->setSceneData(mRoot.get());
mViewer->getCamera()->setProjectionResizePolicy(osg::Camera::FIXED);
}
--- end code ----------
Regards,
Jesper D. Thomsen
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org