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

标签 java android opengl-es sdk

谁能告诉我为什么 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/

相关文章:

java - 压缩日志在 Kafka 中保存多长时间?

android - 区分 PayPalConfiguration CONFIG_ENVIRONMENT

android - Jetpack 撰写 : What is the best way to support all screen sizes?

java - 与 Android 中的 GLThread 同步

ios - iOS 10 中 A7 设备上的 OpenGL 错误

java - 如果文件没有已知的扩展名,如何告诉 Java 使用系统默认的文本编辑器打开文件?

java - sql update 语句无法从 Java 运行,而是手动运行?

java - 无法使用 XPath 获取 XML 的节点值

android - 无法从 URL 加载图像

opengl-es - 我可以在顶点着色器中访问 gl_PointCoord 吗?