Используя DirectX 9, я хочу захватить то, что находится на экране, и отобразить его уменьшенную версию в своей программе.
Чтобы захватить его, я нашел и использую GetFrontBufferData. Однако это работает путем записи на поверхность, определенную в системной памяти (D3DPOOL_SYSTEMMEM). Это приводит к тому, что мне приходится затем передавать снимок экрана обратно в видеопамять, чтобы я мог его нарисовать.
Как вы можете себе представить, эта ненужная передача из (видеопамять -> системная память -> видеопамять) приводит к тому, что моя программа сильно тормозит.
Есть ли способ сохранить изображение в переднем буфере и поместить его на поверхность в видеопамяти?
Этот вопрос является ответвлением моего недавнего вопроса: Захват и рисование снимка экрана с помощью DirectX