DrawElements和BadExec

时间:2012-02-02 22:11:04

标签: objective-c opengl

当我使用以下行时,我保持一致的BAD_EXEC:

glVertexPointer(3, GL_FLOAT, 0, [drawObjectTmp getVertices]);
glDrawElements(GL_TRIANGLE_STRIP, [drawObjectTmp getVerticesSizeArray], GL_UNSIGNED_SHORT, [drawObjectTmp getVertexIndices]);

其中getVertexindices返回定义为(GLushort *)的数组,getsizesSizeArray返回其大小。我已经交叉检查了数组的上下文;它确实有正确的价值观。

如果我用以下内容替换数组,它可以正常工作:

static const GLfloat cubeVertices[] = {
    -1.0, -1.0,  1.0,
    1.0, -1.0,  1.0,
    -1.0,  1.0,  1.0,
    1.0,  1.0,  1.0,
    -1.0, -1.0, -1.0,
    1.0, -1.0, -1.0,
    -1.0,  1.0, -1.0,
    1.0,  1.0, -1.0,
};

我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

您确定没有启用其他阵列(例如TexCoord,Color或Normal阵列)吗?

你确定getVertexIndices不包含getVertices返回数组之外的顶点索引吗?

你确定getVertices返回指向glDrawElements期间未解除分配的内存的指针吗?