Итак, я использую D3D в оконном приложении.
Я запустил D3D со следующими параметрами:
windowed: true;
backbufferformat: D3DFMT_X8R8G8B8;
presentinterval: D3DPRESENT_INTERVAL_ONE;
swapeffect: DISCARD
Каждый раз, когда вызывается OnPaint, я отрисовываю изображение в буфер и представляю его спереди.
Насколько я знаю (и так говорит MSDN), как только я установлю D3DPRESENT_INTERVAL_ONE
, vsync будет работать.
Но в этом случае изображение разрывается при перетаскивании по горизонтали.
(Кажется, что на изображении есть линия, изображение под линией показывает на мониторе, а приведенная выше часть следует.)
Некоторые сайты говорят, что D3DPRESENT_INTERVAL_ONE не будет работать в оконных приложениях.
Как я могу включить vsync?
p.s. Я наконец-то обнаружил, что D3D vsync включен, хотя некоторые настройки окна не верны, что, возможно, само окно не синхронизировано. хотя я не выглянул из настроек.