Relax QOpenGLContext::swapBuffers() conditions.
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>
This commit is contained in:
parent
96e3b44cdc
commit
15b5ed3294
@ -561,11 +561,6 @@ QSurface *QOpenGLContext::surface() const
|
|||||||
|
|
||||||
Call this to finish a frame of OpenGL rendering, and make sure to
|
Call this to finish a frame of OpenGL rendering, and make sure to
|
||||||
call makeCurrent() again before you begin a new frame.
|
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)
|
void QOpenGLContext::swapBuffers(QSurface *surface)
|
||||||
{
|
{
|
||||||
@ -594,17 +589,8 @@ void QOpenGLContext::swapBuffers(QSurface *surface)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
#if !defined(QT_NO_DEBUG)
|
#if !defined(QT_NO_DEBUG)
|
||||||
if (currentContext() != this)
|
if (!QOpenGLContextPrivate::toggleMakeCurrentTracker(this, false))
|
||||||
qWarning() << "QOpenGLContext::swapBuffers() called with non-current surface";
|
|
||||||
else if (!QOpenGLContextPrivate::toggleMakeCurrentTracker(this, false))
|
|
||||||
qWarning() << "QOpenGLContext::swapBuffers() called without corresponding makeCurrent()";
|
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
|
#endif
|
||||||
if (surface->format().swapBehavior() == QSurfaceFormat::SingleBuffer)
|
if (surface->format().swapBehavior() == QSurfaceFormat::SingleBuffer)
|
||||||
glFlush();
|
glFlush();
|
||||||
|
Loading…
Reference in New Issue
Block a user