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