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