GLES3.0中文API-glGetGraphicsResetStatus

名称

glGetGraphicsResetStatus — 检查渲染上下文是否由于软件或硬件问题而丢失

C 规范

GLenum glGetGraphicsResetStatus( void);

描述

某些事件可能导致GL上下文的重置。这种重置会导致所有上下文状态丢失,并要求应用程序在受影响的上下文中重新创建所有对象。

glGetGraphicsResetStatus可以返回以下常量之一:

GL_NO_ERROR
指示自上次调用以来GL上下文尚未处于重置状态。

GL_GUILTY_CONTEXT_RESET
指示已检测到归因于当前GL上下文的重置。

GL_INNOCENT_CONTEXT_RESET
表示已检测到归因于当前GL上下文的重置。

GL_UNKNOWN_CONTEXT_RESET
指示检测到的图形重置,其原因未知。

如果返回了除GL_NO_ERROR以外的其他复位状态,并且随后的调用返回了GL_NO_ERROR,则遇到并完成了上下文复位。如果重复返回重置状态,则上下文可能正在重置。

重置通知行为是在上下文创建时确定的,可以通过使用符号常量GL_RESET_NOTIFICATION_STRATEGY调用glGetIntegerv来查询。

如果重置通知行为是GL_NO_RESET_NOTIFICATION,则实现将永远不会传递重置事件通知,并且glGetGraphicsResetStatus将始终返回GL_NO_ERROR。

如果该行为是GL_LOSE_CONTEXT_ON_RESET,则图形重置将导致所有上下文状态丢失,需要重新创建所有关联的对象。在这种情况下,glGetGraphicsResetStatus可能返回上述任何值。

如果在上下文中发生图形重置通知,则通知也必须在与该上下文共享对象的所有其他上下文中发生。

在上下文上发生图形重置后,该上下文(或与该上下文共享的任何上下文)上的后续GL命令将生成GL_CONTEXT_LOST错误。这样的命令不会有副作用(特别是不会修改指针为查询结果传递的内存),也不会无限期地阻塞或导致应用程序终止。此行为有两个重要的例外:

在图形重置后,glGetError和glGetGraphicsResetStatus会正常运行,以便应用程序可以确定发生了重置,以及何时可以安全地销毁并重新创建上下文。

任何可能导致轮询应用程序无限期阻塞的命令都将生成GL_CONTEXT_LOST错误,但也将向应用程序返回指示完成的值。这些命令包括:

具有pname GL_SYNC_STATUS的glGetSynciv会忽略其他参数,并返回GL_SIGNALED的值。

pname为GL_QUERY_RESULT_AVAILABLE的glGetQueryObjectuiv会忽略其他参数,并以参数形式返回TRUE。

API 支持版本

函数名 2.0 3.0 3.1 3.2
glGetGraphicsResetStatus - - - ✔

另见

glGetError glGetIntegerv, glGetQueryObjectuiv glGetSynciv

版权

https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetGraphicsResetStatus.xhtml
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/.

发布了215 篇原创文章 · 获赞 0 · 访问量 917

猜你喜欢

转载自blog.csdn.net/MSK1111/article/details/103334588
今日推荐