调用以检查Android中是否存在当前的EGLContext

前端之家收集整理的这篇文章主要介绍了调用以检查Android中是否存在当前的EGLContext前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图找到一种方法来检查当前的EGLContext是否存在并准备好在 Android上使用.根据规范,我尝试过使用 @H_403_2@((EGL10)EGLContext.getEGL()).eglGetCurrentContext()

@H_403_2@然后将它与EGL10.EGL_NO_CONTEXT(尝试.equals()和!=)进行比较.然而,即使通过调试它似乎’它’返回’EGL_NO_CONTEXT’的实例(似乎意味着所有内部值都未初始化)但是无论我做什么比较我都无法让它工作.

@H_403_2@有人知道另一种/适当的方法来完成这项工作吗?我不想通过抛出一个随机的GL调用并捕获EGLError来做到这一点……

解决方法

当我尝试将GLSurfaceView屏幕上的内容渲染到屏幕外的EGLPixelBufferSurface时,我遇到了无法重新使用当前EGLContext的问题.据我所知,使用静态方法的问题 @H_403_2@EGLContext.getEgl()

@H_403_2@是它创建了一个默认的EGL实例 – 这意味着与之关联的EGLContext等同于EGL10.EGL_NO_CONTEXT.

@H_403_2@此外,在Android中,EGLContext只能与一个线程相关联(Android开发人员Romain Guy如此说here).所以为了正确使用

@H_403_2@EGL.getCurrentContext()

@H_403_2@你必须有一个预先存在的EGL实例,并在创建EGLContext的线程中调用getCurrentContext()方法.

@H_403_2@注意:当GLThread在GLSurfaceView类中暂停/恢复时,Android现在处理保存EGLContext(请参阅setPreserveEGLContextOnPause(boolean preserveOnPause)方法).

猜你在找的Android相关文章