Прямой доступ к видеопамяти

Обсуждение проблем видеокарт, драйверов и всего, что с ними связано.

Модераторы: max-sever, iStalker, andser

Ответить
Spiritsun
Новичок
Сообщения: 1
Зарегистрирован: 05.08.2013 14:41
Контактная информация:

Прямой доступ к видеопамяти

Сообщение Spiritsun » 05.08.2013 16:03

Печально, я не нашел тут раздел для программистов, но может будет мне ответ. На оф форуме тяжеловато на англ общаться. Вощем прочёл я тему о структуре формирования графики от приложения к железу http://nvworld.ru/files/old/docs/pr_video.html А цель такая: получить прямой доступ к видеообласти видеокарты для снятия скриншота при любых условиях. Существуют проги для работы с удалённым рабочим столом, которые используют mirror driver (см. msdn), который перехватывает изображение драйвера ОС до того как оно попадёт в видеокарту, т.е. не использует хардовое ускорение, но работает на порядок бустрее стандартных захватов (логично для видео). Также существуют проги для снятия скриншотов и видео с игровых окон с различными ускорителями (hardware overlay) direct3d, directdraw и тп, но это окна, а не всё экранное пространство и там полно подводных камней, изза которых не получается сделать весь скрин при накладке своих окон сторонних приложений. Ну вот какой я выход надумываю: над либо писать свой mirror драйвер, который будет иметь доступ к железу, или замена на своё по принципу работы openGL, может есть какие низкоуровневые методы работы с адресным пространством видеокарты? На что вот обратить внимание, куда податься, поможет ли хук видеодрайвера?

Выписка по ссылке выше:
Интерфейс DirectX принципиально состоит из двух независимых частей:
* низкоуровневой работающей с аппаратной частью;
* высокоуровневой работающей с программными вызовами.

Такая организация позволяет легко расширять вторую часть не меняя или минимально меняя первую, кроме того, первая часть может быть использования для "прикручивания" к ней других интерфейсов. Например вышеупомянутый OpenGL в Windows функционирует именно так, то есть поверх DirectX.
Вот меня интересует 1-ый пункт, расписать бы его подробней.

В developer.nvidia.com есть всякое, но направлено на работу с созданием графики.
Вот тут есть некоторые исходники драйвера в котором внизу видно запросы по адресам, но по большому счёту носят информационный характер или твик. Может есть всётаки некий "волшебный" адрес для достижения цели?

И последняя идея сводится к получению списка всех оверлеев всех окон виндовс и доступа к ним. Имея порядок прорисовки можно попробовать слить всё воедино. В каком направлении двигаться и есть ли шанс на победу?

Ответить