在GL_TEXTURE_COORD_ARRAY和GL_COLOR_ARRAY客户端状态之间切换时出现空白屏幕

时间:2011-10-20 18:05:27

标签: iphone objective-c ios opengl-es ios5

我的iOS 5应用程序中有一个绘图功能,可以绘制纹理六边形的地图。我正在尝试实现颜色选择以使六边形选择更容易,因此我构建了另一个绘制功能,以各种纯色绘制六边形。只要我从不调用备用函数,每个都运行良好。

当我在绘制纹理六边形贴图后尝试绘制纯色贴图时会发生问题 - 即使在不同的渲染循环中也是如此。我正在使用

glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);

绘制纯色地图时,

glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

绘制纹理贴图时。

但似乎纹理状态保持活跃并阻止纯色正确绘制。据我所知,它试图将纯色绘制为纹理,即使我已禁用该状态。没有任何绑定纹理,它们会显示空白。

我是否需要调用其他功能才能在颜色和纹理模式之间成功切换?

1 个答案:

答案 0 :(得分:0)

好的,想通了。我不得不打电话给

glDisable(GL_TEXTURE_2D);

除了

glDisableClientState(GL_TEXTURE_COORD_ARRAY);