有没有办法在我的 GLSurfaceView.Renderer 实现之外创建 gl 纹理?我只能在 onSurfaceCreated 方法中创建纹理,因为这是我可以访问 GL10 gl 变量的地方。这限制了我,因为我无法在我的代码中按需创建开放式 gl 纹理,并且必须在该方法中创建所有内容。
或者,有没有办法在 GLSurfaceView.Renderer 之外获取 GL10 gl 变量?或者还有另一种创建 gl 纹理的方法吗?
有没有办法在我的 GLSurfaceView.Renderer 实现之外创建 gl 纹理?我只能在 onSurfaceCreated 方法中创建纹理,因为这是我可以访问 GL10 gl 变量的地方。这限制了我,因为我无法在我的代码中按需创建开放式 gl 纹理,并且必须在该方法中创建所有内容。
或者,有没有办法在 GLSurfaceView.Renderer 之外获取 GL10 gl 变量?或者还有另一种创建 gl 纹理的方法吗?
我发现了一些有用的东西,得到了 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();
你应该保持你的代码分开。GL 的东西应该在 gl 相关的类中完成。逻辑应该在与逻辑相关的类中完成,不知道 gl 的东西......
所以,不,如果您无权访问 GL10 变量,则无法创建 gl 纹理。另外,我认为 onSurfaceCreated 是做这些事情的正确方法。