diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2010-06-15 07:37:43 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2010-06-15 07:37:43 (GMT) |
commit | 6100dd1ccda7fce60625e99ffb2a90dc62cb1486 (patch) | |
tree | 7de5d72c227a163c3d042d8c04b8551176e4460a /src/opengl/qglframebufferobject.cpp | |
parent | 7b7f3869b15cee6f6815e10d49dcb8209a415edd (diff) | |
parent | 3a54e5ead647a318641d9a2bcf75eda4b8859d1b (diff) | |
download | Qt-6100dd1ccda7fce60625e99ffb2a90dc62cb1486.zip Qt-6100dd1ccda7fce60625e99ffb2a90dc62cb1486.tar.gz Qt-6100dd1ccda7fce60625e99ffb2a90dc62cb1486.tar.bz2 |
Merge remote branch 'origin/master'
Conflicts:
src/gui/painting/qpainter.cpp
Diffstat (limited to 'src/opengl/qglframebufferobject.cpp')
-rw-r--r-- | src/opengl/qglframebufferobject.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index 890b029..deffc20 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -1024,6 +1024,36 @@ QPaintEngine *QGLFramebufferObject::paintEngine() const } /*! + \fn bool QGLFramebufferObject::bindDefault() + \internal + + Switches rendering back to the default, windowing system provided + framebuffer. + Returns true upon success, false otherwise. + + \sa bind(), release() +*/ +bool QGLFramebufferObject::bindDefault() +{ + QGLContext *ctx = const_cast<QGLContext *>(QGLContext::currentContext()); + + if (ctx) { + bool ext_detected = (QGLExtensions::glExtensions() & QGLExtensions::FramebufferObject); + if (!ext_detected || (ext_detected && !qt_resolve_framebufferobject_extensions(ctx))) + return false; + + ctx->d_ptr->current_fbo = ctx->d_ptr->default_fbo; + glBindFramebuffer(GL_FRAMEBUFFER_EXT, ctx->d_ptr->default_fbo); +#ifdef QT_DEBUG + } else { + qWarning("QGLFramebufferObject::bindDefault() called without current context."); +#endif + } + + return ctx != 0; +} + +/*! \fn bool QGLFramebufferObject::hasOpenGLFramebufferObjects() Returns true if the OpenGL \c{GL_EXT_framebuffer_object} extension |