你能描述一下我什么时候应该重新创建 vbo、着色器、纹理吗?我知道 OpenGL 函数是在单独的线程中调用的。我在Activity的onResume中调用GLSurfaceView的onResume方法(和onPause方法一样)。当 GLContext 丢失时?让我们假设用户触摸主页按钮。Activity 的 onPause 方法被调用。我应该删除 vbo、着色器、纹理吗?或者我应该在调用 onDestroy 时删除这些资源(恢复 GL 线程以删除它们?)?如果用户触摸返回按钮怎么办?另一个问题。我应该在 Java 中保留位图、顶点属性以重新初始化 VBO、纹理吗?现在,每次调用 Activity 的 onPaused 方法时,我都会删除所有着色器、vbos 和纹理。我将一个特殊事件发送到事件队列。在 onSurfaceCreated 我重新初始化所有资源。它正在工作,但速度不快& 它消耗大量内存。有更好的解决方案吗?
问问题
863 次