gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:42 25 4
gpt4 key购买 nike

我正在尝试寻找一种方法来检查当前 EGLContext 是否存在并准备好在 Android 上使用。根据规范,我尝试使用

((EGL10)EGLContext.getEGL()).eglGetCurrentContext()

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

有人知道另一种/正确的方法来完成这项工作吗?我不想通过抛出随机 GL 调用并捕获 EGLError...

最佳答案

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

EGLContext.getEgl()

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

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

EGL.getCurrentContext()

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

注意:当 GLThread 在 GLSurfaceView 类中暂停/恢复时,Android 现在会处理保存 EGLContext(查看 setPreserveEGLContextOnPause(boolean preserveOnPause) 方法)。

关于android - 调用以检查 Android 中是否存在当前 EGLContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3091937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com