你必须在 OpenGL 程序中调用 glfwSwapInterval(1) 吗?
Do you have to call glfwSwapInterval(1) in an OpenGL program?
我运行我的程序两次。第一次使用 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();
如果要将渲染循环同步到显示器的刷新率,则必须调用它。默认行为是渲染尽可能多的帧。
我运行我的程序两次。第一次使用 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();
如果要将渲染循环同步到显示器的刷新率,则必须调用它。默认行为是渲染尽可能多的帧。