程序在gldrawarray崩溃

时间:2012-06-29 03:29:10

标签: iphone ios opengl-es

我在ios的Opengles代码中上传了一个带有以下模型加载器的模型。

http://bill.dudney.net/roller/objc/entry/wave_front_obj_textures_working

现在的问题是,当我想用​​这个模型加载器和下面的代码一起绘制一个立方体

const GLfloat floorVertices[] = {
    -1.0, 1.0, 0.0,     // Top left
    -1.0, -1.0, 0.0,    // Bottom left
    1.0, -1.0, 0.0,     // Bottom right
    1.0, 1.0, 0.0       // Top right
};



glVertexPointer(3, GL_FLOAT, 0, floorVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glRotatef(90.0, 0.0, 1.0, 0.0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

它在glDrawArrays(GL_TRIANGLE_FAN,0,4)上崩溃并出现EXC_BAD_ACCESS错误

我通过互联网搜索了这个问题,但不能简单解决或解释。这是另一个关于它的问题,但由于缺乏关于opengles的知识,我无法得到答案。

glDrawArrays crash with EXC_BAD_ACCESS

任何人都可以解决这个问题或者已经问过的问题的简单解释。提前谢谢

1 个答案:

答案 0 :(得分:4)

这可能是因为其他顶点数组仍然被启用,而OpenGL的指针尚未被清除,导致OpenGL取消引用悬空指针。

使用OpenGL Frame Debugger或glGetIntegerv()查看是否启用了任何其他数组类型(COLOR_ARRAY,NORMAL_ARRAY,GL_TEXTURE_COORD_ARRAY)。