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
对于其他操作系统,谷歌将为您提供帮助。