summaryrefslogtreecommitdiffstats
path: root/src/opengl/qglframebufferobject.cpp
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@nokia.com>2010-06-11 12:06:41 (GMT)
committerMartin Smith <martin.smith@nokia.com>2010-06-11 12:06:41 (GMT)
commitd92d1106e8cb2ca14b26b8c027d52608ee2915e9 (patch)
tree91b75077ecf9fb4709f000b89d5963ab98cdfc9b /src/opengl/qglframebufferobject.cpp
parenta295a69e76ff330a2716c97b70723f0bd408f197 (diff)
parent24bcac9de46c89f4d8b533946e7b0feeacca1b0d (diff)
downloadQt-d92d1106e8cb2ca14b26b8c027d52608ee2915e9.zip
Qt-d92d1106e8cb2ca14b26b8c027d52608ee2915e9.tar.gz
Qt-d92d1106e8cb2ca14b26b8c027d52608ee2915e9.tar.bz2
Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7
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