C++ DirectX&x2014;是否有类似DirectDraw surface Flip()的功能?

C++ DirectX&x2014;是否有类似DirectDraw surface Flip()的功能?,c++,directx,directdraw,C++,Directx,Directdraw,我正在构建一个应用程序,根据提供的两张图片(不是3D模型)在200 Hz屏幕上绘制立体图像。所以重画的速度和完整性是非常重要的。我使用DirectDraw曲面及其Flip()获得了最佳效果(将当前曲面的图像切换到次曲面): 但是DirectDraw非常过时,我正在寻找一种基于现代DirectX库重新实现此功能的方法。但我真的不想创建一个四边形,按纹理绘制图片,计算3D投影矩阵来输出2D图像 如果有任何关于如何使用DirectX实现这一点的片段,我都会非常感激。提前感谢。出于您的目的,您可以使用D

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

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


如果有任何关于如何使用DirectX实现这一点的片段,我都会非常感激。提前感谢。

出于您的目的,您可以使用DXGI并完全避免使用D3D。您没有说明如何将数据放入backbuffer,但DXGI允许您创建交换链、翻转它(当前)和访问曲面(例如锁定它们-现在称为Map)。对于3D,您需要“1”版本,例如DXGISwapChain1。看


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

我无法理解directdraw过时的原因。我自己使用direct3d就是为了它提供的功能,但原理几乎是一样的……谢谢!但是兼容性呢?程序需要在WinXP终端机器上运行。这样,您就不能使用现代DirectX库。
(void) lpddsPrimary->Flip(nullptr, DDFLIP_WAIT);