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

Reply via email to