首页 > 解决方案 > 你必须在 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();

标签: c++openglglfw

解决方案


如果要将渲染循环与显示器的刷新率同步,则必须调用它。默认行为是渲染尽可能多的帧。


推荐阅读