Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Direct3D11中处理backbuffer?_C++_Direct3d - Fatal编程技术网

C++ 如何在Direct3D11中处理backbuffer?

C++ 如何在Direct3D11中处理backbuffer?,c++,direct3d,C++,Direct3d,最近,我想学习一本名为《3D游戏编程大师的技巧》的书。它使用DDraw实现了一个软渲染引擎。但DDraw太旧了。我想使用Direct3D11做同样的事情。所以我得到了主backbuffer的纹理,并对其进行了更新。但它不起作用,我该怎么办?即使在现代平台上使用DirectDraw,您也无法直接访问真正的frontbuffer/backbuffer 如果您希望在不使用GPU的情况下将所有渲染都渲染到CPU内存块中,那么快速演示的最佳选择是使用Direct3D 11纹理和D3D11\u USAGE\

最近,我想学习一本名为《3D游戏编程大师的技巧》的书。它使用DDraw实现了一个软渲染引擎。但DDraw太旧了。我想使用Direct3D11做同样的事情。所以我得到了主backbuffer的纹理,并对其进行了更新。但它不起作用,我该怎么办?

即使在现代平台上使用DirectDraw,您也无法直接访问真正的frontbuffer/backbuffer

如果您希望在不使用GPU的情况下将所有渲染都渲染到CPU内存块中,那么快速演示的最佳选择是使用Direct3D 11纹理和
D3D11\u USAGE\u DYNAMIC
,然后在演示backbuffer上对该纹理进行简单的全屏四元渲染。对于该步骤,您可以查看和
SpriteBatch


也就是说,从性能角度来看,这可能非常糟糕,因为您在CPU上做所有事情,而GPU在99%的时间里基本上什么都不做。

谢谢您的想法。我已经用您的解决方案解决了问题。