Fixups for GL_CONTEXT_LOST in QOpenGLExtensionMatcher
Fixes the rest of the places we use the pattern of emptying the OpenGL error stack to be able to handle GL_CONTEXT_LOST. Change-Id: Ic45024fc6df84d70d60c48831fa586f889af0c0b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
cf53ed97a1
commit
6abed98e87
@ -62,6 +62,10 @@ QT_BEGIN_NAMESPACE
|
||||
typedef const GLubyte * (QOPENGLF_APIENTRYP qt_glGetStringi)(GLenum, GLuint);
|
||||
#endif
|
||||
|
||||
#ifndef GL_CONTEXT_LOST
|
||||
#define GL_CONTEXT_LOST 0x0507
|
||||
#endif
|
||||
|
||||
QOpenGLExtensionMatcher::QOpenGLExtensionMatcher()
|
||||
{
|
||||
QOpenGLContext *ctx = QOpenGLContext::currentContext();
|
||||
@ -82,8 +86,13 @@ QOpenGLExtensionMatcher::QOpenGLExtensionMatcher()
|
||||
} else {
|
||||
#ifdef QT_OPENGL_3
|
||||
// clear error state
|
||||
while (funcs->glGetError()) {}
|
||||
|
||||
while (true) { // Clear error state.
|
||||
GLenum error = funcs->glGetError();
|
||||
if (error == GL_NO_ERROR)
|
||||
break;
|
||||
if (error == GL_CONTEXT_LOST)
|
||||
return;
|
||||
};
|
||||
qt_glGetStringi glGetStringi = (qt_glGetStringi)ctx->getProcAddress("glGetStringi");
|
||||
|
||||
if (!glGetStringi)
|
||||
|
Loading…
x
Reference in New Issue
Block a user