summaryrefslogtreecommitdiffstats
path: root/src/opengl/qglframebufferobject.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <olivier.goffart@nokia.com>2010-06-15 07:37:43 (GMT)
committerOlivier Goffart <olivier.goffart@nokia.com>2010-06-15 07:37:43 (GMT)
commit6100dd1ccda7fce60625e99ffb2a90dc62cb1486 (patch)
tree7de5d72c227a163c3d042d8c04b8551176e4460a /src/opengl/qglframebufferobject.cpp
parent7b7f3869b15cee6f6815e10d49dcb8209a415edd (diff)
parent3a54e5ead647a318641d9a2bcf75eda4b8859d1b (diff)
downloadQt-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.cpp30
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