谁能告诉我为什么 glGenTextures()
在我的构造函数中不起作用?
这是我的项目的设置方式:
- 使用自定义渲染器在当前 Activity 舞台上调用
.draw
。 - 创建阶段时,它会将自身(其构造函数的结束行)分配给静态
Global.activeStage
。 - 现在,渲染器在当前 Activity 的舞台上调用
.draw
,该引用保存在Global.activeStage
内。 - 在舞台中,我有一个函数可以加载舞台中所需的所有纹理。
- 如果我第一次调用
.draw
时调用此函数,则没有问题。 - 如果我在构造函数中调用它,除了
glGenTextures()
之外,一切都会正常工作 - 它会创建一个零值,而不是 1..2..3 等等。 - 在这两种情况下,都使用全局
GL10
引用,而不是.draw
获取的引用,因此这不是问题。
似乎只有在已经存在对我正在使用的当前阶段的引用时一切才有效(如果创建了阶段,例如构造函数已经运行)。
我不确定是否相关,但舞台是在 onCreateSurface
结束后在线程中创建的。
如果您说哪些部分相关,我可以发布一些代码。
最佳答案
我确信您必须在与 openGL
关联的 Thread
上运行所有 openGL
操作。这就是为什么它在从渲染器(在 GL 线程上运行)调用的 draw()
方法中调用时起作用,但在构造函数(如您所说,在另一个线程上运行)中调用时不起作用。
关于java - Android:OpenGL:glGenTextures 在构造函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10600984/