如何在Direct3D11中处理backbuffer?

时间:2016-01-18 03:01:01

标签: c++ direct3d

最近,我想学习一本名为Tricks of 3D Games Programming Gurus的书。它使用DDraw来实现一个软渲染引擎。但是DDraw已经老了。我想用Direct3D11来做同样的事情。所以我得到了主backbuffer的纹理,并更新它。但它不起作用,我该怎么办?

1 个答案:

答案 0 :(得分:1)

即使在现代平台上使用DirectDraw,您也无法直接访问真正的前缓冲区/后备缓冲区。

如果你想在不使用GPU的情况下将所有渲染渲染到CPU内存块中,那么快速演示的最佳选择是使用带有D3D11_USAGE_DYNAMIC的Direct3D 11纹理,然后执行简单的完整 - 屏幕四重渲染的那个纹理到演示文稿后台。对于该步骤,您可以查看DirectX Tool KitSpriteBatch类。

也就是说,性能方面可能相当差,因为你在CPU上做了所有事情,而GPU在99%的时间里基本上什么都不做。