我正在为使用 OpenGL 执行渲染的科学应用程序编写时间关键代码。我正在控制的设备看起来像电脑显示器。梦想是以 60 赫兹的频率刷新设备。
我尝试使用单缓冲区光栅模式,但无法让 vsync 正常工作。在双缓冲模式下它可以工作。
你可以对单个缓冲上下文进行 vsync 吗?
作品
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 24;
pfd.cDepthBits = 16;
pfd.iLayerType = PFD_MAIN_PLANE;
不工作
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 24;
pfd.cDepthBits = 16;
pfd.iLayerType = PFD_MAIN_PLANE;
编辑
在我的渲染循环结束时
glFlush();
glFinish();
swapBuffers();//GDI?