glfwSwapInterval(1)
似乎对我不起作用。如果我在 CCC 中强制使用 VSync 或在 SFML 中强制使用 setVerticalSyncEnabled(true)
,我的 fps 会下降到 60,但 GLFW 只会保持 9000 fps 的运行速度。我是在以错误的方式解决这个问题还是 GLFW 被窃听了?
最佳答案
看起来 GLFW 不想在启用桌面合成时打开 VSync。如果您仍然需要 VSync,这将适用于 Windows:
#ifdef _WIN32
// Turn on vertical screen sync under Windows.
// (I.e. it uses the WGL_EXT_swap_control extension)
typedef BOOL (WINAPI *PFNWGLSWAPINTERVALEXTPROC)(int interval);
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL;
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT");
if(wglSwapIntervalEXT)
wglSwapIntervalEXT(1);
#endif
对于其他操作系统,谷歌会帮助你。
关于c++ - glfwSwapInterval(1) 无法启用 vsync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16285546/