> That should not be needed at all, and indicative that something somewhere in 
> your application or it's usage of the OSG is messing up the GL object 
> management. 
> 
> 
> The resizeGLObjbectBuffer() is only needed when graphics context are created 
> or destroyed.  
> 
> 
> 
> As to what is going wrong your case I can't say - something *very* odd is 
> happening.  Are you creating your own graphics context / modifying the viewer?
> 
> 
> Robert.


Yes I am creating my own GraphicsContext:

Code:
// Local Variable to hold window size data
RECT rect;

// 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 = true; // CHECK DIFFERENCE
traits->doubleBuffer = false;
traits->setInheritedWindowPixelFormat = true;
traits->inheritedWindowData = windata;
traits->samples = samples;
traits->vsync = false;
GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get());
traits->x = 0;
traits->y = 0;
return gc;


which afterwards is used as follows:


Code:
m_defaultGraphicsContext->clear();

m_defaultGraphicsContext->setName("DefaultViewGraphicsContext");
m_defaultGraphicsContext->getState()->setUseModelViewAndProjectionUniforms(true);
 //ADDED FOR SHADER    
m_defaultGraphicsContext->getState()->setUseVertexAttributeAliasing(true); 

if (m_defaultGraphicsContext->valid())
{
        defaultCamera = mViewer->getCamera();
        defaultCamera->setCullMask(0x04);
        defaultCamera->getOrCreateStateSet()->setMode(GL_LIGHTING, 
osg::StateAttribute::OFF );
        
defaultCamera->getOrCreateStateSet()->setMode(osg::StateAttribute::SCISSOR , 
osg::StateAttribute::OFF | osg::StateAttribute::PROTECTED);
        
defaultCamera->getOrCreateStateSet()->removeAttribute(osg::StateAttribute::MATERIAL);
        defaultCamera->getView()->setLightingMode(osg::View::NO_LIGHT);
        defaultCamera->setGraphicsContext(m_defaultGraphicsContext);
        defaultCamera->setViewport(new 
osg::Viewport(m_defaultGraphicsContext->getTraits()->x, 
m_defaultGraphicsContext->getTraits()->y, 
m_defaultGraphicsContext->getTraits()->width, 
m_defaultGraphicsContext->getTraits()->height));
}

double fovy, aspectRatio;

mViewer->getCamera()->getProjectionMatrixAsPerspective(fovy, aspectRatio, 
defaultCameraNear, defaultCameraFar);
aspectRatio = double(m_defaultGraphicsContext->getTraits()->width) / 
double(m_defaultGraphicsContext->getTraits()->height);
mViewer->getCamera()->setProjectionMatrixAsPerspective(fovy, aspectRatio, 
0.0000000001f, defaultCameraFar); 

initOpenGL(m_defaultGraphicsContext, maxNumUniforms, maxUniformBlockSize);




Code:

void initOpenGL(osg::ref_ptr<osg::GraphicsContext> context, GLint& 
maxNumUniforms, GLint& maxUniformBlockSize) {
        context->realize();
        context->makeCurrent();
        maxNumUniforms = 0;
        glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, &maxNumUniforms);
        maxUniformBlockSize = 0;
        glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &maxUniformBlockSize);

        // init glew
        ///glewExperimental = GL_TRUE;
        /// if (GLEW_ARB_vertex_buffer_object == FALSE || 
GLEW_ARB_vertex_array_object == FALSE) return;
#ifdef USE_INSTANCED_DRAWING
        glewInit();
#endif
        context->releaseContext();

        // ATI driver 11.6 didn't return right number of uniforms which lead to 
a crash, when the vertex shader was compiled(WTF?!)
#ifdef ATI_FIX
        maxNumUniforms      = 576;
        maxUniformBlockSize = 16384;
#endif
}



Maybe you can spot something that is clearly wrong here, otherwise it could be 
related to the glewInit()?

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=66864#66864





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to