如何从TDirect2DCanvas(Direct2D Rendertarget)复制数据?

8
我正在试用C++ Builder的TDirect2DCanvas的Direct2D RenderTarget属性,以使用GPU进行位图操作的基准测试。相比GDI,这是最令人印象深刻的。然而,我无法弄清楚如何将结果复制回CPU内存,以便我可以将其用于进一步的CPU处理。已经阅读了有关使用WIC的内容,但显然您会失去大部分硬件加速。Windows 8似乎提供了一个具有映射功能的新位图,但我想使用(标准的)Windows 7。此外,C++ Builder没有提供这些新功能的头文件。
给定TDirect2DCanvas,或者您希望使用Direct2D RenderTarget或ID2D1Bitmap,如何将位图复制回CPU内存?
1个回答

0

我不是Delphi或C++ Builder的专家,但从DirectX API的角度来看,以下是我的尝试。

  1. 创建DXGI与Direct2D相结合。
  2. 像往常一样渲染您的场景。
  3. 将DXGI交换链用于后备缓冲区以获取像素信息。

这里有一篇非常好的文章,解释了如何做到这一点:https://msdn.microsoft.com/en-us/magazine/dn198239.aspx


谢谢Jasper,但我已经知道如何在W8(或7与PU)中完成它。我的问题是,或者更好的说,是如何在W7中完成它。 - Mike Versteeg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接