c++ - 你必须在 OpenGL 程序中调用 glfwSwapInterval(1) 吗?
问题描述
我运行了我的程序两次。第一次使用 glfwSwapInterval(1) 一切都很好。第二次没有 glfwSwapInterval(1) 并且它使用了我 100% 的 CPU。
我的问题:这是正常的吗,我真的必须调用 glfwSwapInterval(1) 才能让我的程序正常运行。
编码:
glfwInit();
long window = glfwCreateWindow(1200, 800, "OpenGL", 0, 0);
glfwShowWindow(window);
glfwMakeContextCurrent(window);
GL.createCapabilities();
glClearColor(1, 0, 0, 1);
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
}
glfwTerminate();
解决方案
如果要将渲染循环与显示器的刷新率同步,则必须调用它。默认行为是渲染尽可能多的帧。
推荐阅读
- postgresql - 在 Heroku 上托管 RESTful API
- java - Firebase 数据库只更新一个数据
- django - django_heroku.settings(locals()) 不在 collectstatic 的末尾
- javascript - 为什么第二个事件监听器不触发?
- java - jpa 存储库返回不完整的记录
- python - 收到错误“数组的最后 2 个维度必须是正方形”。这是什么意思,如何解决?
- reactjs - 如何在构建生产中隐藏 React javascript 文件中的密钥
- c - [C]重新定义价值?
- html - 水平对齐页眉中的元素
- sql - 如何将 sql 查询的结果分配给变量并将其用于内置函数?