代码之家  ›  专栏  ›  技术社区  ›  Yigang Wu

如何提高从D3D面到系统内存的复制速度

  •  0
  • Yigang Wu  · 技术社区  · 14 年前

    我正在使用下面的代码将D3D surface复制回系统内存,但是在调用LockRect操作时性能不好,它花费了大量的时间在这个函数上。有办法改进吗?提前谢谢。

    下面是示例代码。

    D3DDev->获取renderTargetData(renderTarget,offscreenSurface);

    //锁定曲面以读取像素

    屏幕外空间->锁定矩形(&lr,&rect,D3DLOCK_READONLY);

    1 回复  |  直到 14 年前
        1
  •  0
  •   Gobra    14 年前

    什么D3D版本? 你可以创建一个支持HDC的渲染目标,得到它的表面并使用 surface->GetHDC() 之后。我使用这个技巧而不是“LockRect”,它提供了可接受的性能来捕获D3D数据,以便与常规GDI或I/O一起使用。