Кроссплатформенный захват экрана с помощью OpenGl возможно ли это и как это сделать? - PullRequest
1 голос
/ 08 июля 2011

Так что я нашел этот интересный файл (ссылка на него я нашел здесь) . Грустно

Также проверьте glGrab, который использует OpenGL для захвата экрана и очень быстрый.

так что мне интересно, можем ли мы получить снимки экрана desctop через openGl в Windows и Linux, используя какую-нибудь оболочку openGL, например SDL?

1 Ответ

2 голосов
/ 08 июля 2011

OpenGL может (легко, быстро и просто) захватить передний / задний буферы , которыми он владеет, и у вас есть действительный контекст для .

Другими словами: нет.

Рабочий стол не принадлежит OpenGL. В Windows он управляется драйвером под пред-Vista и оконным менеджером под Vista / 7. Вам понадобится функция BitBlt, которая не является ни портативной, ни быстрой.
В Linux рабочий стол может, по крайней мере, иногда действительно принадлежать OpenGL (создание оконных менеджеров), но у вас нет контекстного дескриптора для этого.

Если вы можете уменьшить свои требования с «рабочего стола» до «содержимого моего окна», то все становится очень просто. В простейшем случае это один вызов функции, и если вы хотите сделать это асинхронно с DMA, это еще 3-4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...