diff options
Diffstat (limited to 'src/gui/kernel/qopenglcontext.cpp')
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 90c54c4039..7fc9cceb60 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -636,12 +636,21 @@ void QOpenGLContext::destroy() d->platformGLContext = 0; delete d->functions; d->functions = 0; + + foreach (QAbstractOpenGLFunctions *func, d->externalVersionFunctions) { + QAbstractOpenGLFunctionsPrivate *func_d = QAbstractOpenGLFunctionsPrivate::get(func); + func_d->owningContext = 0; + func_d->initialized = false; + } + d->externalVersionFunctions.clear(); qDeleteAll(d->versionFunctions); d->versionFunctions.clear(); qDeleteAll(d->versionFunctionsBackend); d->versionFunctionsBackend.clear(); + delete d->textureFunctions; d->textureFunctions = 0; + d->nativeHandle = QVariant(); } @@ -719,7 +728,7 @@ QOpenGLFunctions *QOpenGLContext::functions() const QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context is current. It is also possible to call this function when the context is not current, but in that case it is the caller's responsibility to ensure proper - intiialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() + initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() afterwards. Usually one would use the template version of this function to automatically @@ -1259,6 +1268,24 @@ void QOpenGLContext::removeFunctionsBackend(const QOpenGLVersionStatus &v) /*! \internal + */ +void QOpenGLContext::insertExternalFunctions(QAbstractOpenGLFunctions *f) +{ + Q_D(QOpenGLContext); + d->externalVersionFunctions.insert(f); +} + +/*! + \internal + */ +void QOpenGLContext::removeExternalFunctions(QAbstractOpenGLFunctions *f) +{ + Q_D(QOpenGLContext); + d->externalVersionFunctions.remove(f); +} + +/*! + \internal */ QOpenGLTextureHelper* QOpenGLContext::textureFunctions() const { |