1

我什至无法正确解释它..所以我有类似的代码

printf_s("%s", "1");
glDrawElements(GL_TRIANGLES, model.IndCount, GL_UNSIGNED_INT, (void*)0); 
printf_s("%s", "2");
eglSwapBuffers ( esContext->eglDisplay, esContext->eglSurface);

并且 2 从未打印过。当我删除 glDrawElements 时一切正常

4

3 回答 3

1
glDrawElements(GL_TRIANGLES, model.IndCount, GL_UNSIGNED_INT, (void*)0);
                                             ^^^^^^^^^^^^^^^ whaaaaat?

OpenGL ES'glDrawElements()不接受GL_UNSIGNED_INTfor type,只是GL_UNSIGNED_BYTEGL_UNSIGNED_SHORT

如果你glGetError()在那个电话之后检查,你应该得到一个GL_INVALID_ENUM.

于 2013-08-23T16:44:52.293 回答
0

尝试printf代替printf_s(如果违反任何约束,它将停止打印 - 这很可能是正在做的事情)并在每次打印后glDrawElements刷新。stdout

于 2013-08-23T16:18:51.107 回答
0
glDrawElements(GL_TRIANGLES, model.IndCount, GL_UNSIGNED_INT, (void*)0);

崩溃,因此永远不会执行下一个语句。

给 glDrawElements 一个正确的第四个参数来修复你的崩溃。

于 2013-08-23T16:20:45.753 回答