Как да подобрим скоростта на копиране от D3D повърхността обратно в системната памет

Използвам следните кодове, за да копирам D3D повърхността обратно в системната памет, но производителността е лоша при извикване на операция LockRect, тя прекарва много време на тази функция. Има ли начин да го подобрим? Благодаря предварително.

По-долу има примерни кодове.

D3DDev->GetRenderTargetData(renderTarget, offscreenSurface);

// Заключване на повърхността за четене на пиксели

offscreenSurface->LockRect( &lr, &rect, D3DLOCK_READONLY);


person Yigang Wu    schedule 15.07.2010    source източник


Отговори (1)


Каква D3D версия? Можете да създадете цел за рендиране с HDC поддръжка, да получите нейната повърхност и да използвате surface->GetHDC() след това. Използвах този трик вместо „LockRect“, той даде приемлива производителност за улавяне на D3D данни за използване с обикновен GDI или I/O.

person Gobra    schedule 15.07.2010