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