如何在D3D窗口应用程序中启用VSYNC?
所以,我在窗口应用程序中使用D3D。
我用以下参数点了D3D:
windowed: true;
backbufferformat: D3DFMT_X8R8G8B8;
presentinterval: D3DPRESENT_INTERVAL_ONE;
swapeffect: DISCARD
每次调用OnPaint时,我都会将图像渲染到后备缓冲区并将其呈现在前面。
据我所知(MSDN也这么说),一旦我设置D3DPRESENT_INTERVAL_ONE
,vsync就可以了。
但在这种情况下,水平拖动时图像会被撕掉。
(似乎图像上有一条线,显示屏上显示的线下方的图像以及上面的部分。)
有些网站称D3DPRESENT_INTERVAL_ONE不适用于窗口化应用程序。
我怎样才能启用vsync?
附:我终于发现D3D vsync已启用,而某些窗口设置不正确,可能是窗口本身未同步。不过,我没有偷看这些设置。
没有找到相关结果
已邀请:
5 个回复
弓萍功
变量上:
如果你已经完成了这个并且你正在使用旧的GDI东西,那么你的vsync设置不是错误的,而是窗口设置。你必须启用双缓冲,否则你仍然会撕裂。
蕉衫
搜洼挂时
揽芳僵迷仇
藐刚