【发布时间】:2010-01-18 04:32:00
【问题描述】:
WGL_EXT_swap_control 扩展允许在 Windows 上执行此操作,但我什至无法找到任何远程跨平台执行相同操作的内容,即将我的缓冲区交换与屏幕刷新同步。我的应用程序使用 GLEW,所以由它提供的东西会更好。对 Linux、Mac 和 Windows 的跨平台支持是必要的,但如果无法设置同步(例如用户在他的图形驱动程序中强制关闭),我的应用程序不会中断。
我将接受在许多平台上使用 GLEW 执行此操作的程序代码作为有效答案。
【问题讨论】:
-
stackoverflow.com/questions/589064/… 提出同样的问题,但没有使用 GLEW,也没有找到解决方案。
-
SDL2 提供了启用垂直同步的功能。与 GLEW 相比,SDL2 与更多平台兼容,在我看来,这是一个更好的选择。然而,在创建 OpenGL 上下文后的 SDL2 中,您可以简单地调用:
SDL_GL_SetSwapInterval(1),它会完成这项工作。如果您有兴趣,请在此处查看文档:wiki.libsdl.org/SDL_GL_SetSwapInterval
标签: c++ opengl vsync vertical-sync