Relax QOpenGLContext::swapBuffers() conditions.
authorSamuel Rødal <samuel.rodal@digia.com>
Thu, 8 Nov 2012 12:32:07 +0000 (13:32 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 8 Nov 2012 15:59:50 +0000 (16:59 +0100)
There's no need to force the context to be current and the correct FBO
to be bound when swapBuffers() is called, as this can easily be handled
on a per-platform basis.

Change-Id: I7af5a082d6a2b03dfa2cdc874c27617139a781a9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
src/gui/kernel/qopenglcontext.cpp

index 6c006ab..e8aa44d 100644 (file)
@@ -561,11 +561,6 @@ QSurface *QOpenGLContext::surface() const
 
     Call this to finish a frame of OpenGL rendering, and make sure to
     call makeCurrent() again before you begin a new frame.
-
-    If you have bound a non-default framebuffer object, you need to
-    use bindDefaultFramebufferObject() to make sure that the default
-    framebuffer object is bound before calling swapBuffers(), as
-    some Qt platforms assume that the default framebuffer object is bound.
 */
 void QOpenGLContext::swapBuffers(QSurface *surface)
 {
@@ -594,17 +589,8 @@ void QOpenGLContext::swapBuffers(QSurface *surface)
         return;
 
 #if !defined(QT_NO_DEBUG)
-    if (currentContext() != this)
-        qWarning() << "QOpenGLContext::swapBuffers() called with non-current surface";
-    else if (!QOpenGLContextPrivate::toggleMakeCurrentTracker(this, false))
+    if (!QOpenGLContextPrivate::toggleMakeCurrentTracker(this, false))
         qWarning() << "QOpenGLContext::swapBuffers() called without corresponding makeCurrent()";
-
-    GLint framebufferBinding = 0;
-    glGetIntegerv(GL_FRAMEBUFFER_BINDING, &framebufferBinding);
-
-    GLint platformFramebuffer = GLint(d->platformGLContext->defaultFramebufferObject(surfaceHandle));
-    if (framebufferBinding != platformFramebuffer)
-        qWarning() << "QOpenGLContext::swapBuffers() called with non-default framebuffer object bound";
 #endif
     if (surface->format().swapBehavior() == QSurfaceFormat::SingleBuffer)
         glFlush();