The following piece of code writes the same error to the console:
Code: !!! pbuffer is VALID! PixelBufferWin32::makeCurrentImplementation, wglMakeCurrent error: Die angeforde rte Ressource wird bereits verwendet. Error: OpenGL version test failed, requires valid graphics context. PixelBufferWin32::realizeImplementation, wglShareLists error: Die angeforderte R essource wird bereits verwendet. PixelBufferWin32::makeCurrentImplementation, wglMakeCurrent error: Die angeforde rte Ressource wird bereits verwendet. so, wglMakeCurrent(_hdc, _hglrc) fails in bool PixelBufferWin32::makeCurrentImplementation() see http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.6.1/src/osgViewer/PixelBufferWin32.cpp May this be a Windows bug or OSG's implementation for Windows bug? ::osgViewer::Viewer * viewer = new ::osgViewer::Viewer(); viewer->setSceneData(pGeode); ::osg::ref_ptr<SnapImageDrawCallback> snapImageDrawCallback = new SnapImageDrawCallback(); viewer->getCamera()->setFinalDrawCallback (snapImageDrawCallback.get()); snapImageDrawCallback->setFileName("1.bmp"); snapImageDrawCallback->setSnapImageOnNextFrame(true); ::osg::ref_ptr< ::osg::GraphicsContext> pbuffer; ::osg::ref_ptr< ::osg::GraphicsContext::Traits> traits = new ::osg::GraphicsContext::Traits; traits->x = 0; traits->y = 0; traits->width = 640; traits->height = 480; traits->red = 8; traits->green = 8; traits->blue = 8; traits->alpha = 8; traits->windowDecoration = false; traits->pbuffer = true; traits->doubleBuffer = true; traits->sharedContext = 0; pbuffer = ::osg::GraphicsContext::createGraphicsContext(traits.get()); if (!pbuffer.valid()) { ::std::cout << "\n\n!!! pbuffer is invalid!\n\n" << std::endl; return; } else { ::std::cout << "\n\n!!! pbuffer is VALID!\n\n" << std::endl; } viewer->getCamera()->setGraphicsContext(pbuffer.get()); viewer->getCamera()->setViewport(new osg::Viewport(0,0,640,480)); GLenum buffer = pbuffer->getTraits()->doubleBuffer ? GL_BACK : GL_FRONT; viewer->getCamera()->setDrawBuffer(buffer); viewer->getCamera()->setReadBuffer(buffer); viewer->getCamera()->setRenderTargetImplementation(::osg::CameraNode::FRAME_BUFFER_OBJECT); viewer->frame(); ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=33995#33995 _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

