Как получить X для рендеринга в текстуру OpenGL?

Я пытаюсь написать композитор, как Compiz, но с разными графическими эффектами. Я застрял на первом шаге, который заключается в том, что я не могу найти, как заставить X отображать окна в текстуру, а не в кадровый буфер. Любой совет, с чего начать?

1 ответ

X11 композиция идет следующим образом.

  1. Вы перенаправляете окна в область вне экрана. Расширение Composite имеет функции для этого
  2. вы используете расширение Damage, чтобы узнать, какие окна изменили свое содержимое
  3. в композиторе вы используете расширение GLX_EXT_texture_from_pixmap для отправки содержимого каждого окна в соответствующие текстуры OpenGL.
  4. вы рисуете текстуры в окне слоя композиции; расширение Composite предоставляет вам специальный слой экрана, между обычным слоем окна и слоем заставки, в котором происходит создание композиции окна.
Другие вопросы по тегам