Как получить X для рендеринга в текстуру OpenGL?
Я пытаюсь написать композитор, как Compiz, но с разными графическими эффектами. Я застрял на первом шаге, который заключается в том, что я не могу найти, как заставить X отображать окна в текстуру, а не в кадровый буфер. Любой совет, с чего начать?
1 ответ
X11 композиция идет следующим образом.
- Вы перенаправляете окна в область вне экрана. Расширение Composite имеет функции для этого
- вы используете расширение Damage, чтобы узнать, какие окна изменили свое содержимое
- в композиторе вы используете расширение GLX_EXT_texture_from_pixmap для отправки содержимого каждого окна в соответствующие текстуры OpenGL.
- вы рисуете текстуры в окне слоя композиции; расширение Composite предоставляет вам специальный слой экрана, между обычным слоем окна и слоем заставки, в котором происходит создание композиции окна.