From f5b552b5900d3bed72ace43c22f35c09b499bbdf Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 19 Mar 2014 16:00:40 +0100 Subject: [PATCH] Return false on context creation failure Make QOpenGLContext::create() return false when the native context could not be initialized. This way the return value and isValid() become equivalent. Relying on on having a non-NULL platform context is not enough, many platforms will return a new instance even if the underlying platform code failed to create a native context. To ensure that a platform context is really usable, isValid() has to be checked too. Change-Id: I6b4e9fdb24347ad52fbd6edbb8d144d51e16c301 Reviewed-by: Friedemann Kleint --- src/gui/kernel/qopenglcontext.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 7ccdd7395b..5087e33b47 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -247,8 +247,8 @@ QMutex QOpenGLContextPrivate::makeCurrentTrackerMutex; To set up a context, set its screen and format such that they match those of the surface or surfaces with which the context is meant to be used, if necessary make it share resources with other contexts with - setShareContext(), and finally call create(). Use isValid() to check if the - context was successfully initialized. + setShareContext(), and finally call create(). Use the return value or isValid() + to check if the context was successfully initialized. A context can be made current against a given surface by calling makeCurrent(). When OpenGL rendering is done, call swapBuffers() to swap @@ -491,7 +491,7 @@ bool QOpenGLContext::create() d->shareContext = 0; d->shareGroup = d->shareContext ? d->shareContext->shareGroup() : new QOpenGLContextGroup; d->shareGroup->d_func()->addContext(this); - return d->platformGLContext; + return isValid(); } /*!