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 osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org