【发布时间】:2013-04-23 12:38:12
【问题描述】:
glfwSwapInterval(1) 似乎对我不起作用。如果我在 CCC 中强制 VSync 或在 SFML 中强制使用 setVerticalSyncEnabled(true),我的 fps 会下降到 60,但 GLFW 只会继续以 9000 fps 运行。我是不是走错了路,还是 GLFW 被窃听了?
【问题讨论】:
-
您使用的是什么 GPU? GLFW 常见问题解答says something 关于
glfwSwapInterval不适用于某些 ATI 驱动程序。我从来没有用过 GLFW,但你能不能直接打电话给(PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT")? -
@EdwardA 是的,它是 ATI。那为什么它会在 SFML 中工作呢?
wglSwapIntervalEXT出于某种原因工作......所以 GLFW 被窃听了? -
我不能肯定地告诉你,虽然如果
wglSwapIntervalEXT有效,那肯定意味着它与 GLFW 有关。您可以尝试下载GLFW source,与它一起编译您的程序并设置断点@line 831 window.c 和line 1638 win32_window.c 以查看实际情况。如果检查失败,它可能是其中之一。 -
嗯...
_glfwIsCompositionEnabled()返回真。哦,那么必须手动完成。谢谢:) -
@EdwardA This GLFW issue 已在 3.1.2 版中修复。