GetFrontBufferData для видеопамяти, а не системной памяти - PullRequest
1 голос
/ 05 апреля 2011

Использование DirectX 9 Я хочу захватить то, что на экране, и отобразить уменьшенную версию этого в моей программе.

Чтобы захватить это, я нашел и использую GetFrontBufferData.Однако это работает путем записи на поверхность, определенную в системной памяти (D3DPOOL_SYSTEMMEM).Это приводит к тому, что мне нужно перенести снимок экрана обратно в видеопамять, чтобы я мог затем нарисовать его.

Как вы можете себе представить, этот бесполезный перенос из (видеопамять -> Системная память -> видеопамять) вызывает в моей программе значительный спуск.

Есть ли способ получить сохраненное изображениев передний буфер и положить его на поверхность в видеопамяти?

Этот вопрос является ответом на мой недавний вопрос: Захват и создание скриншота с использованием DirectX

...