当我使用以下行时,我保持一致的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,
};
我究竟做错了什么?
答案 0 :(得分:0)
您确定没有启用其他阵列(例如TexCoord,Color或Normal阵列)吗?
你确定getVertexIndices不包含getVertices返回数组之外的顶点索引吗?
你确定getVertices返回指向glDrawElements期间未解除分配的内存的指针吗?