我正在使用以下代码将 D3D 表面复制回系统内存,但是调用 LockRect 操作时性能很差,它花费了大量时间这个函数。有没有办法改进它?提前致谢。
下面是示例代码。
D3DDev->GetRenderTargetData(renderTarget, offscreenSurface);
// 锁定表面以读取像素
offscreenSurface->LockRect( &lr, &rect, D3DLOCK_READONLY );
我正在使用以下代码将 D3D 表面复制回系统内存,但是调用 LockRect 操作时性能很差,它花费了大量时间这个函数。有没有办法改进它?提前致谢。
下面是示例代码。
D3DDev->GetRenderTargetData(renderTarget, offscreenSurface);
// 锁定表面以读取像素
offscreenSurface->LockRect( &lr, &rect, D3DLOCK_READONLY );
什么D3D版本?您可以创建一个支持 HDC 的渲染目标,获取它的表面,然后使用surface->GetHDC()。我使用了这个技巧而不是“LockRect”,它为捕获 D3D 数据以与常规 GDI 或 I/O 一起使用提供了可接受的性能。