GLFW VSync не работает
glfwSwapInterval(1)
похоже, не работает на меня. Если я заставляю VSync в CCC или setVerticalSyncEnabled(true)
в SFML мой fps падает до 60, но GLFW просто продолжает работать на 9000 fps. Я делаю это неправильно или GLFW прослушивается?
2 ответов
Ну, похоже, 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
для других ОС google поможет вам.
перестроить GLFW3 с параметром GLFW_USE_DWM_SWAP_INTERVAL.
посмотреть glfw/src/config.h
документы GLFW предупреждают о проблемах с дрожанием, но я сам их не вижу.