summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qopenglcontext_platform.h
diff options
context:
space:
mode:
authorThomas Senyk <[email protected]>2022-12-14 08:20:36 +0100
committerThomas Senyk <[email protected]>2023-01-12 19:03:15 +0100
commit17a59f661398bf56aeaba4187f55d07eea09c578 (patch)
tree8d651db27a7be2f8058cab95f9f7498b4346abbd /src/gui/kernel/qopenglcontext_platform.h
parent8745a73c4fa42e6fc304bc5b53075ac071a918ed (diff)
Add QEGLContext::invalidateContext
QEGLContext::invalidateContext will mark that egl context is invalide and trigger SceneGraph to destroy it, create a new one and re-create and re-upload all resources (e.g. textures) associated with the current state of the SceneGraph In addition this change also improves QEglFSWindow::invalidateSurface() and QEglFSContext::eglSurfaceForPlatformSurface(..) Where QEglFSWindow::invalidateSurface() will now destroy the corresponding EGLSurface via eglDestroySurface, including "unbinding" it from the current thread via eglMakeCurrent and un-setting the screen's EGLSurface in case it's the same resource. QEglFSContext::eglSurfaceForPlatformSurface(..) will now call QEglFSWindow::resetSurface() in case of getting a EGL_NO_SURFACE from the QEglFSWindow (which happens if above invalidateSurface() was called before) - therefor re-creating the resource if it was destoyed via QEglFSWindow::invalidateSurface() Pick-to: 6.5 Change-Id: I37badd1fc11e993c395fb1502e9bd27ebe18b821 Reviewed-by: Laszlo Agocs <[email protected]>
Diffstat (limited to 'src/gui/kernel/qopenglcontext_platform.h')
-rw-r--r--src/gui/kernel/qopenglcontext_platform.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/kernel/qopenglcontext_platform.h b/src/gui/kernel/qopenglcontext_platform.h
index fe36478a653..1f84cf6ce3c 100644
--- a/src/gui/kernel/qopenglcontext_platform.h
+++ b/src/gui/kernel/qopenglcontext_platform.h
@@ -79,6 +79,8 @@ struct Q_GUI_EXPORT QEGLContext
virtual EGLContext nativeContext() const = 0;
virtual EGLConfig config() const = 0;
virtual EGLDisplay display() const = 0;
+
+ virtual void invalidateContext() = 0;
};
#endif