问题是关于 OpenGL ES 2.0 和 EGL 1.4。
我试图了解调用后eglTerminate
是否对 GL 命令的行为有规范要求。我的意思是如果有任何 GL 错误或者它可能是一个例外。
在这种情况下是否有任何预期行为的定义,或者 GL 命令是否应该完全不受 EGL 命令的影响?
谢谢
问题是关于 OpenGL ES 2.0 和 EGL 1.4。
我试图了解调用后eglTerminate
是否对 GL 命令的行为有规范要求。我的意思是如果有任何 GL 错误或者它可能是一个例外。
在这种情况下是否有任何预期行为的定义,或者 GL 命令是否应该完全不受 EGL 命令的影响?
谢谢
调用 eglTerminate 标记与您要终止的 EGLDisplay 关联的所有 EGL 资源以进行删除。这包括任何表面和上下文,在您的情况下,它们肯定会影响 OpenGL ES 上下文的行为。
关于预期行为,您所遵循的规范措辞如下(来自http://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf - eglTerminate,第 17 页):
使用绑定上下文和表面(即继续向绑定的客户端 API 上下文发出命令)不会导致应用程序中断或终止,但呈现结果未定义,客户端 API 可能会产生错误。
即,如果在您终止显示时您的上下文仍然是当前的,则在该上下文上进行的任何后续 OpenGL ES 调用都是未定义的——它们可能会引发 OpenGL ES 错误,或导致不正确的渲染,但不应导致异常。