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

时间:2014-03-13 14:59:26

标签: c++ windows delphi direct2d

我尝试使用C ++ Builder的TDirect2DCanvas的Direct2D RenderTarget属性来使用GPU进行基准位图操作。与GDI相比,这是最令人印象深刻的。但是,我无法弄清楚如何将结果返回到CPU内存中,因此我可以将其用于进一步的CPU处理。读过关于使用WIC的内容,但显然你放弃了大部分的硬件加速。 Windows 8似乎提供了一个带有地图功能的新位图,但我想使用(标准)Windows 7.此外,C ++ Builder不提供这些新功能的头文件。

给定一个TDirect2DCanvas,或者您希望使用Direct2D RenderTarget或ID2D1Bitmap,如何将位图复制回CPU内存?

1 个答案:

答案 0 :(得分:0)

我不是Delphi或C ++ Builder的专家,但这是我从DirectX API角度尝试的方法。

  1. 与Direct2D一起创建DXGI。
  2. 按照您的方式渲染场景。
  3. 作为后台缓冲区的DXGI交换链获取像素信息。
  4. 这是一篇非常好的文章,解释了如何做到这一点:https://msdn.microsoft.com/en-us/magazine/dn198239.aspx