Android:OpenGL:glGenTextures在构造函数中不起作用?

时间:2012-05-15 12:46:39

标签: java android opengl-es sdk

有谁可以告诉我为什么glGenTextures()在我的构造函数中不起作用?

以下是我的项目设置方式:

  • 使用自定义渲染器,在当前活动舞台上调用.draw
  • 创建一个舞台时,它会将自己(其构造函数的结束行)分配给静态Global.activeStage
  • 现在渲染器在当前活动的舞台上调用.draw,该引用保留在Global.activeStage内。
  • 在舞台上,我有一个加载舞台所需纹理的功能。
  • 如果我第一次调用此函数.draw,则没有问题。
  • 如果我在构造函数中调用它,除了glGenTextures()之外一切正常 - 它创建一个零值而不是1..2..3,依此类推。
  • 在这两种情况下都会使用全局GL10引用而不是.draw引用,所以这不是问题所在。

似乎一切正常,如果已经有我正在使用的当前阶段的引用(如果创建阶段,例如构造函数已经运行)。

我不确定它是否相关,但是在onCreateSurface结束后在线程中创建了舞台。

如果您说哪些部分是相关的,我可以发布一些代码。

1 个答案:

答案 0 :(得分:4)

我确信您必须在与openGL相关联的Thread上运行所有openGL次操作。这就是为什么它从你从渲染器调用的draw()方法(在GL-Thread上运行)调用而不是从构造函数(在你说的另一个Thread上运行)调用的原因。