我甚至无法正确解释.. 所以我有像
这样的代码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时,一切正常
答案 0 :(得分:1)
glDrawElements(GL_TRIANGLES, model.IndCount, GL_UNSIGNED_INT, (void*)0);
^^^^^^^^^^^^^^^ whaaaaat?
OpenGL ES'glDrawElements()
不接受GL_UNSIGNED_INT
的{{1}},只接受type
或GL_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个参数来修复崩溃。