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 <Friedemann.Kleint@digia.com>
This commit is contained in:
parent
9508ea4c50
commit
f5b552b590
@ -247,8 +247,8 @@ QMutex QOpenGLContextPrivate::makeCurrentTrackerMutex;
|
|||||||
To set up a context, set its screen and format such that they match those
|
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
|
of the surface or surfaces with which the context is meant to be used, if
|
||||||
necessary make it share resources with other contexts with
|
necessary make it share resources with other contexts with
|
||||||
setShareContext(), and finally call create(). Use isValid() to check if the
|
setShareContext(), and finally call create(). Use the return value or isValid()
|
||||||
context was successfully initialized.
|
to check if the context was successfully initialized.
|
||||||
|
|
||||||
A context can be made current against a given surface by calling
|
A context can be made current against a given surface by calling
|
||||||
makeCurrent(). When OpenGL rendering is done, call swapBuffers() to swap
|
makeCurrent(). When OpenGL rendering is done, call swapBuffers() to swap
|
||||||
@ -491,7 +491,7 @@ bool QOpenGLContext::create()
|
|||||||
d->shareContext = 0;
|
d->shareContext = 0;
|
||||||
d->shareGroup = d->shareContext ? d->shareContext->shareGroup() : new QOpenGLContextGroup;
|
d->shareGroup = d->shareContext ? d->shareContext->shareGroup() : new QOpenGLContextGroup;
|
||||||
d->shareGroup->d_func()->addContext(this);
|
d->shareGroup->d_func()->addContext(this);
|
||||||
return d->platformGLContext;
|
return isValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user