DirectX - есть ли аналог DirectDraw у поверхности Flip ()? - PullRequest
0 голосов
/ 28 марта 2012

Я создаю приложение, которое рисует анаглиф (стереоизображение) на экране с частотой 200 Гц на основе двух предоставленных изображений (НЕ 3D-модель).Так что скорость целостности перерисовки очень важна.Я достиг лучших результатов с поверхностями DirectDraw и их Flip () (переключение изображения текущей поверхности на вторичное):

(void) lpddsPrimary->Flip(nullptr, DDFLIP_WAIT);

Но DirectDraw очень устарел, и я ищу способ переопределить эту функциональностьна современных библиотеках DirectX.Но я действительно не хочу создавать четырехугольник, рисовать картинку в виде текстуры, вычислять матрицы трехмерной проекции только для вывода двумерных изображений.

Я был бы очень рад любому фрагменту того, как это можно сделать с помощьюDirectX.Заранее спасибо.

1 Ответ

1 голос
/ 28 марта 2012

Для ваших целей вы можете использовать DXGI и полностью избегать D3D. Вы не говорите, как вы получаете данные в резервный буфер, но DXGI позволяет вам создавать цепочку подкачки, переворачивать ее (представить) и получать доступ к поверхностям (например, блокировать их - сейчас это называется карта). Для 3D вам нужны версии "1", например DXGISwapChain1. Смотри http://msdn.microsoft.com/en-us/library/windows/desktop/bb205075(v=vs.85).aspx.

Обратите внимание, что DXGISwapChain1 является подклассом DXGISwapChain, а некоторые жизненно важные методы, такие как GetBuffer, находятся в базовом интерфейсе.

...