1

我在 iOS 5.1 的 iPhone 3GS 中开发了一个 OpenGL ES 2.0 程序。它使用glDrawElementsOpenGL函数。

在 iPhone 3GS 中,此代码成功返回。但是在带有 iOS 6.0.2 的 iPhone 5 中,抛出EXEC_BAD_ACCESS.

我不知道为什么。我用索引调用 glDrawElements。小规模网格数据在 iPhone 3gs 和 iPhone 5 中都得到了很好的处理。但大规模网格数据在 iPhone 5 中是失败的。

EXEC_BAD_ACCESS被扔进“ gleRunVertexSubmitARM

给我看看提示。

下面是代码。帮我。

glEnable(GL_DEPTH_TEST);
glEnableVertexAttribArray(_positionSlot);
glVertexAttribPointer(_positionSlot, 3, GL_FLOAT, GL_FALSE ,0, (void*)&mesh2->vertices[0][0]); // ES 2.0

glEnableVertexAttribArray(_normalSlot);
glVertexAttribPointer(_normalSlot, 3, GL_FLOAT, GL_FALSE ,0, (void*)&mesh->normals[0][0]); // ES 2.0

glDrawElements(GL_TRIANGLES, mesh2->faces.size()*3,GL_UNSIGNED_SHORT, &mesh2->faces[0].indices[0]); // <= Crash in iPhone5.
4

1 回答 1

0

我已经解决了这个问题。有问题的代码是完美的。我发现 glDisableVertexAttribArray 在其他源代码中的 glEnableVertexAttribArray 之后没有成对调用。我修好了,运行良好。谢谢你。

于 2013-01-19T15:37:38.087 回答