2012-10-22 113 views
1

我使用的OpenGL ES 1.1与NDK,偶尔当我打电话glGenTextures它不改变名称持有者的我通过在(甚至不将其设置为0)的值。glGenTextures不产生名

  • glGetError返回0,没有错误。
  • 所有GL代码是在从表面渲染称为所以上下文不应该是一个问题JNI方法。 (编辑:这是一个错误的假设,是导致问题的原因)
  • 代码工作在某些情况下,而不是别人。如果我在每次重复呼叫后都会在大约5次尝试后运作。 (我正在根据请求生成字形)。
  • 第一批次的纹理获得创建多达至少32#但之后,它是碰运气。

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

回答

2

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

+0

是的,问题是,调整大小调用(其中字体大小变化和字形需要重新加载)从UI线程不是GL线程调用。这解释了为什么它在我的计算机上工作,因为UI和GL线程在该实现中是相同的。 – DrYap