0

我正在构建一个应用程序,该应用程序根据提供的两张图片(非 3D 模型)在 200 Hz 屏幕上绘制立体图像(立体图像)。所以重绘的速度完整性非常重要。我使用 DirectDraw 表面及其 Flip() 获得了最好的结果(将当前表面的图像切换到辅助图像):

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

但是 DirectDraw 非常过时,我正在寻找一种基于现代 DirectX 库重新实现此功能的方法。但我真的不想创建一个四边形,绘制图片作为它的纹理,计算 3D 投影矩阵只是为了输出 2D 图像。

对于如何使用 DirectX 完成此操作的任何片段,我将非常感激。提前致谢。

4

1 回答 1

1

出于您的目的,您可以使用 DXGI 并完全避免 D3D。您没有说明如何将数据放入后台缓冲区,但 DXGI 允许您创建交换链、翻转它(Present)并访问表面(例如锁定它们 - 现在称为 Map)。对于 3D,您需要“1”版本,例如 DXGISwapChain1。请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/bb205075(v=vs.85).aspx

请注意,DXGISwapChain1 是 DXGISwapChain 的子类,一些重要的方法(例如 GetBuffer)位于基本接口中。

于 2012-03-28T10:09:11.850 回答