从iOS到OSX的glDrawArrays

4
我在尝试将我为iOS开发的游戏移植到OSX。目前来看,除了使用glbound纹理绘制一些随机生成的山丘之外,其他所有功能都已经实现。
在iOS上运行时完全正常,但在OSX中运行时,此部分是唯一不可见的。我检查过所有坐标和颜色值,所以我确信这与OpenGL有关。
glDisable(GL_TEXTURE_2D);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

glBindTexture(GL_TEXTURE_2D, _textureSprite.texture.name);
glColor4f(_terrainColor.r,_terrainColor.g,_terrainColor.b, 1);    
glVertexPointer(2, GL_FLOAT, 0, _hillVertices); 
glTexCoordPointer(2, GL_FLOAT, 0, _hillTexCoords);
glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)_nHillVertices);   

glEnableClientState(GL_COLOR_ARRAY);    
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D); 
2个回答

2
你正在禁用纹理坐标(和颜色)数组以及相关的纹理单元,但同时绑定了一个纹理坐标指针。
你真的想这样做吗?

当使用drawArray时,这通常是标准流程。我尝试过禁用/启用这些状态,但它们几乎没有任何区别。就像我说的,在iOS上这很好用。 - Remcod
1
@Remcod:标准流程是在glDrawArrays或glDrawElements之前启用各种设置,在之后禁用各种设置。 - datenwolf

0

显然,它最终被绘制出来了,只是作为1/2像素线。不知何故,顶点上存在一些缩放效果,我需要检查我的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接