DirectX - 是否有类似DirectDraw表面的Flip()?

时间:2012-03-28 09:47:16

标签: c++ directx directdraw

我正在构建一个应用程序,它基于两个提供的图片(非3D模型)在200 Hz屏幕上绘制立体图像(立体图像)。因此重绘的速度整合非常重要。我使用DirectDraw表面及其Flip()(将当前曲面的图像切换到次级曲面)获得了最佳效果:

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

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

对于使用DirectX可以完成的任何片段,我真的非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

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

请注意,DXGISwapChain1是DXGISwapChain的子类,并且一些重要的方法(如GetBuffer)位于基本界面中。