【问题标题】:glGenTextures not generating namesglGenTextures 不生成名称
【发布时间】:2012-10-22 16:09:36
【问题描述】:

我在 NDK 中使用 OpenGL ES 1.1,偶尔当我调用 glGenTextures 时,它不会更改我传入的名称持有者的值(甚至不会将其设置为 0)。

  • glGetError 返回 0,没有错误。
  • 所有 GL 代码都在从表面渲染器的onDrawFrame 调用的 JNI 方法中,因此上下文应该不是问题。 (编辑:这是一个错误的假设,是问题的原因)
  • 该代码在某些情况下有效,而在其他情况下无效。如果我在每一帧重复调用,它会在大约 5 次尝试后工作。 (我正在根据要求生成字形)。
  • 第一批纹理至少被创建到 #32,但之后它会被击中。

有人知道glGenTextures 似乎什么都不做的原因吗?

【问题讨论】:

    标签: android opengl-es android-ndk opengl-es-1.1


    【解决方案1】:

    glGenTextures 是否在有效的 OpenGL(-ES) 上下文处于活动状态时调用?如果您使用多个线程: OpenGL(-ES) 上下文一次只能在一个线程中处于活动状态。但是每个线程可能有不同的活动上下文。

    【讨论】:

    • 是的,问题是从 UI 线程而不是 GL 线程调用了调整大小调用(其中字体大小发生了变化并且字形需要重新加载)。这解释了为什么它在我的计算机上工作,因为 UI 和 GL 线程在该实现中是相同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2012-10-24
    相关资源
    最近更新 更多