Это действительно зависит, что Вы пытаетесь сделать, я не могу действительно ответить, не зная специфических особенностей. Возможные фильтры и их эффекты перечислены здесь: Типы фильтров
Очень хакерский, но захватывает ли рабочий стол (без скрытия окна), как в этом руководстве , и обрезка всего, кроме вашего окна, работает?
В общем, я ' Я даже не уверен, что спецификация OpenGL требует, чтобы вывод был помещен в передний буфер: реализация могла бы просто использовать наложения видео (или сквозные махинации VGA в стиле Voodoo2) для вывода.
Единственное, что я могу придумать для себя, - это выполнить следующий псевдокод:
for each window
grab the window into its own pixmap
grab the GL portions and paste into the windows
order the window pixmaps by depth of the window (deepest first)
initialize a common pixmap
for each window pixmap
paint the window pixmap into the common pixmap at the appropriate location.
Используется ли это? ?
Примеры Grabber показывают, как получить содержимое фреймбуфера OpenGL