Как повысить скорость копирования с поверхности D3D обратно в системную память

Я использую следующие коды для копирования поверхности D3D обратно в системную память, но производительность при вызове операции LockRect плохая, она тратит много времени на эту функцию. Есть ли способ улучшить его? Заранее спасибо.

Ниже приведены примеры кодов.

D3DDev->GetRenderTargetData(renderTarget, offscreenSurface);

// Блокируем поверхность для чтения пикселей

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


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


Ответы (1)


Какая версия Д3Д? Вы можете создать цель рендеринга с поддержкой HDC, получить ее поверхность и использовать surface->GetHDC() потом. Я использовал этот трюк вместо «LockRect», он дал приемлемую производительность для захвата данных D3D для использования с обычным GDI или вводом-выводом.

person Gobra    schedule 15.07.2010