【问题标题】:Creating a gl texture outside of GLSurfaceView.Renderer?在 GLSurfaceView.Renderer 之外创建 gl 纹理?
【发布时间】:2011-05-12 13:54:01
【问题描述】:
有没有办法在我的 GLSurfaceView.Renderer 实现之外创建 gl 纹理?我只能在 onSurfaceCreated 方法中创建纹理,因为这是我可以访问 GL10 gl 变量的地方。这限制了我,因为我无法在我的代码中按需创建 open gl 纹理,而必须在该方法中创建所有内容。
或者,有没有办法在 GLSurfaceView.Renderer 之外获取 GL10 gl 变量?或者还有另一种创建 gl 纹理的方法吗?
【问题讨论】:
标签:
java
android
opengl-es
glsurfaceview
【解决方案1】:
我找到了一些可行的方法,获取了 EGLContext。
import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.opengles.GL10;
// in code.
EGL10 egl = (EGL10)EGLContext.getEGL();
GL10 gl = (GL10)egl.eglGetCurrentContext().getGL();
【解决方案2】:
您应该将代码分开。 GL 的东西应该在 gl 相关的类中完成。逻辑应该在逻辑相关的类中完成,对 gl 的东西一无所知......
所以,不,如果您无权访问 GL10 变量,则无法创建 gl 纹理。
另外,我认为 onSurfaceCreated 是做这些事情的正确方法。