glGetGraphicsResetStatus — check if the rendering context has not been lost due to software or hardware issues
GLenum glGetGraphicsResetStatus(
|
void) ; |
Certain events can result in a reset of the GL context. Such a reset causes all context state to be lost and requires the application to recreate all objects in the affected context.
glGetGraphicsResetStatus
can return one of the following
constants:
GL_NO_ERROR
Indicates that the GL context has not been in a reset state since the last call.
GL_GUILTY_CONTEXT_RESET
Indicates that a reset has been detected that is attributable to the current GL context.
GL_INNOCENT_CONTEXT_RESET
Indicates a reset has been detected that is not attributable to the current GL context.
GL_UNKNOWN_CONTEXT_RESET
Indicates a detected graphics reset whose cause is unknown.
If a reset status other than GL_NO_ERROR
is returned
and subsequent calls return GL_NO_ERROR
, the context
reset was encountered and completed. If a reset status is repeatedly
returned, the context may be in the process of resetting.
Reset notification behavior is determined at context creation time, and
may be queried by calling GetIntegerv
with the
symbolic constant GL_RESET_NOTIFICATION_STRATEGY
.
If the reset notification behavior is
GL_NO_RESET_NOTIFICATION
, then the
implementation will never deliver notification of reset events,
and glGetGraphicsResetStatus
will always
return GL_NO_ERROR
.
If the behavior is GL_LOSE_CONTEXT_ON_RESET
, a graphics reset
will result in the loss of all context state, requiring the recreation of all
associated objects. In this case glGetGraphicsResetStatus
may return any of the values described above.
If a graphics reset notification occurs in a context, a notification must also occur in all other contexts which share objects with that context.
After a graphics reset has occurred on a context, subsequent GL commands on that
context (or any context which shares with that context) will generate a
GL_CONTEXT_LOST
error. Such commands will not have
side effects (in particular, they will not modify memory passed by pointer
for query results), and will not block indefinitely or cause termination
of the application. There are two important exceptions to this behavior:
glGetError
and glGetGraphicsResetStatus
behave normally following a graphics reset, so that the application can
determine a reset has occurred, and when it is safe to destroy and re-create
the context.
Any commands which might cause a polling application to block indefinitely
will generate a GL_CONTEXT_LOST
error, but will also return
a value indicating completion to the application. Such commands include:
glGetSynciv
with pname GL_SYNC_STATUS
ignores the other parameters and returns GL_SIGNALED
in
values
.
glGetQueryObjectuiv
with pname GL_QUERY_RESULT_AVAILABLE
ignores the other parameters and returns TRUE
in params
.
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glGetGraphicsResetStatus
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glGetError
glGetIntegerv
,
glGetQueryObjectuiv
glGetSynciv
Copyright © 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.