summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2020-04-22 14:40:47 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2020-04-24 10:46:52 +0200
commitd737db87349f4d3e9d5ff2cb4758d270cb8f1db7 (patch)
tree82b0ca95302c441b78a8bfd5749fd51db874324e
parentb32fc183812fc6fe4eb1c566d37ab3ddef3896f1 (diff)
Clarify ResetNotification in QSurfaceFormat a bit
Add some more details to make it a bit easier for advanced users to grasp what this is about. Task-number: QTBUG-80257 Pick-to: 5.15 Change-Id: I9969b5b62384a25d5e90b57ef25c83a8a2a6c9c7 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
-rw-r--r--src/gui/kernel/qopenglcontext.cpp8
-rw-r--r--src/gui/kernel/qsurfaceformat.cpp5
2 files changed, 12 insertions, 1 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp
index 9a03333537..d164f44e73 100644
--- a/src/gui/kernel/qopenglcontext.cpp
+++ b/src/gui/kernel/qopenglcontext.cpp
@@ -524,6 +524,14 @@ QOpenGLContext::~QOpenGLContext()
OpenGL context by calling create(), call makeCurrent() again and then
reinitialize all OpenGL resources.
+ On some platforms context loss situations is not something that can
+ avoided. On others however, they may need to be opted-in to. This can be
+ done by enabling \l{QSurfaceFormat::ResetNotification}{ResetNotification} in
+ the QSurfaceFormat. This will lead to setting
+ \c{RESET_NOTIFICATION_STRATEGY_EXT} to \c{LOSE_CONTEXT_ON_RESET_EXT} in the
+ underlying native OpenGL context. QOpenGLContext will then monitor the
+ status via \c{glGetGraphicsResetStatusEXT()} in every makeCurrent().
+
\sa create()
*/
bool QOpenGLContext::isValid() const
diff --git a/src/gui/kernel/qsurfaceformat.cpp b/src/gui/kernel/qsurfaceformat.cpp
index 571b820409..6c04abc293 100644
--- a/src/gui/kernel/qsurfaceformat.cpp
+++ b/src/gui/kernel/qsurfaceformat.cpp
@@ -148,7 +148,10 @@ public:
\value ResetNotification Enables notifications about resets of the OpenGL context. The status is then
queryable via the context's \l{QOpenGLContext::isValid()}{isValid()} function. Note that not setting
this flag does not guarantee that context state loss never occurs. Additionally, some implementations
- may choose to report context loss regardless of this flag.
+ may choose to report context loss regardless of this flag. Platforms that support dynamically enabling
+ the monitoring of the loss of context, such as, Windows with WGL, or Linux/X11 (xcb) with GLX, will
+ monitor the status in every call to \l{QOpenGLContext::makeCurrent()}{makeCurrent()}. See
+ \l{QOpenGLContext::isValid()}{isValid()} for more information on this.
*/
/*!