c++ - DirectX — 是否有 DirectDraw 表面 Flip() 的类似物?

标签 c++ directx directdraw

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

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

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

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

最佳答案

为了您的目的,您可以使用 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)在基接口(interface)中。

关于c++ - DirectX — 是否有 DirectDraw 表面 Flip() 的类似物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904979/

相关文章:

c++ - 构造函数中的智能指针

c++ - 如何获取 GDB 的行号?

opengl - XNA, 直接 X , OpenGL

c++ - Directdraw:旋转视频流

c++ - 我们可以在一条语句中拆分、操作和重新连接 C++ 中的字符串吗?

c++ - 从偏移创建一个 DWORD 指针

c++ - D3D10 常量缓冲区不工作

c++ - 如何从 OBJ 文件中正确读取信息并使用它来渲染带有 DirectX 11 的模型

windows-7 - 在顶部绘制带有文本的视频

gdi - "Exclusive"DirectDraw 调色板实际上不是独占的