1

谁能告诉我为什么glGenTextures()不在我的构造函数中工作?

这是我的项目的设置方式:

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

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

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

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

4

1 回答 1

5

我很确定您必须openGL在与Thread关联的openGL. 这就是为什么当draw()从渲染器调用的方法(在 GL 线程上运行)而不是从构造函数(如你所说的在另一个线程上运行)调用它时它可以工作的原因。

于 2012-05-15T13:00:18.660 回答