【问题标题】:How to copy data from TDirect2DCanvas (Direct2D Rendertarget)?如何从 TDirect2DCanvas (Direct2D Rendertarget) 复制数据?
【发布时间】:2014-04-18 10:09:25
【问题描述】:

我正在尝试使用 C++ Builder 的 TDirect2DCanvas 的 Direct2D RenderTarget 属性来对使用 GPU 的位图操作进行基准测试。与 GDI 相比,这是最令人印象深刻的。但是,我不知道如何将结果返回到 CPU 内存中,以便可以将其用于进一步的 CPU 处理。确实阅读了有关使用 WIC 的信息,但显然您失去了大部分硬件加速。 Windows 8 似乎提供了具有地图功能的新位图,但我想使用(标准)Windows 7。C++ Builder 也不提供这些新功能的头文件。

给定一个 TDirect2DCanvas,或者你想要一个 Direct2D RenderTarget 或一个 ID2D1Bitmap,我如何将位图复制回 CPU 内存?

【问题讨论】:

    标签: c++ windows delphi direct2d


    【解决方案1】:

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

    1. 结合 Direct2D 创建 DXGI。
    2. 按照您已经执行的方式渲染您的场景。
    3. 作为后台缓冲区的DXGI交换链来获取像素信息。

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

    【讨论】:

    • 感谢 Jasper,但我已经知道如何在 W8(或带有 PU 的 7)中做到这一点。我的问题是,或者更好的是,如何在 W7 中做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2017-09-24
    • 1970-01-01
    • 2011-05-29
    • 2014-09-18
    • 1970-01-01
    相关资源
    最近更新 更多