Hello,

The loop below is at the end of OSGWIndow.cpp (around line 1650), and runs
infintely if there is no context. In that case, GL_INVALID_OPERATION is
returned all the time, and the loop never exits.

This happens if a PassiveWindow is destroyed while there is no current
active context.

Maybe, in PassiveWindow, one should call wgl/glx GetCurrentContext, thus
allowing hasContext() to return false?  (Or check if you get the same error
twice in a row, but that's fixing the symptom, not the cause...)

    if(testGLErrors && this->hasContext() == true)
    {
        GLenum glerr;

        while((glerr = glGetError()) != GL_NO_ERROR)
        {
            FWARNING(("Window::frameExit: Caught stray OpenGL "
                      "error %s (%#x).\n",
                      gluErrorString(glerr),
                      glerr));

#ifndef OSG_DEBUG
            FWARNING(("Rerun with debug-libraries to get more accurate "
                      "information.\n"));
#endif
        }
    }

Best Regards,
/Marcus
------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to