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

Ton*_*nov 1 java sdk android opengl-es

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

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

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

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

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

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

Jav*_*ave 5

我敢肯定,你必须运行所有openGL的业务Thread相关联openGL。这就是为什么当从draw()渲染器(在 GL-Thread 上运行)调用的方法而不是从构造函数(如您所说的在另一个线程上运行)调用时,它可以工作。