程序在调用函数后忽略所有内容

时间:2013-08-23 16:08:39

标签: c++ opengl-es opengl-es-2.0

我甚至无法正确解释.. 所以我有像

这样的代码
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时,一切正常

3 个答案:

答案 0 :(得分:1)

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

OpenGL ES'glDrawElements()不接受GL_UNSIGNED_INT的{​​{1}},只接受typeGL_UNSIGNED_BYTE

如果您在通话结束后检查GL_UNSIGNED_SHORT,则应获得glGetError()

答案 1 :(得分:0)

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

答案 2 :(得分:0)

glDrawElements(GL_TRIANGLES, model.IndCount, GL_UNSIGNED_INT, (void*)0);

崩溃,所以永远不会执行下一个语句。

为glDrawElements提供正确的第4个参数来修复崩溃。