Создание 3D оконного менеджера для Linux

Я хочу узнать об оконных менеджерах Linux и создать свой собственный. У меня есть два требования, которые я хотел бы использовать: поддержка 3D и хорошая совместимость/производительность с существующими приложениями.

Существуют ли оконные менеджеры, отвечающие этим критериям и достаточно легкие для работы?

Если нет, что мне нужно принять во внимание, чтобы реализовать поддержку 3D самостоятельно? Я вижу, что Xlib вообще не поддерживает 3D-окна по умолчанию.

Редактировать: Xlib упоминает XGetGeometry, который может получить растровое изображение Windows. Я мог бы затем отобразить это сам, используя OpenGL, однако, является ли это наиболее эффективным способом сделать это?


person RobotRock    schedule 01.04.2014    source источник


Ответы (2)


Существуют ли оконные менеджеры, отвечающие этим критериям и достаточно легкие для работы?

вы можете посмотреть на Compiz, который делает именно это. Также он имеет архитектуру плагинов. Однако остерегайтесь ловушек компоновки на основе X11, проблем самого X11 и того, что большая часть графического сообщества Linux выпила Wayland Kool-Aid.

person datenwolf    schedule 01.04.2014

Вы можете посмотреть на Wayland. Короче говоря, Wayland предоставляет каждому клиенту прямоугольную область для рендеринга, а затем строит отображение на экране, комбинируя эти области.

Исходный код должен дать вам некоторые идеи, как перенаправить весь вывод клиента в буфер текстуры.

person Aaron Digulla    schedule 01.04.2014
comment
Разве Wayland все еще довольно нестабилен и не поддерживается? На первый взгляд не так много примеров, на которых можно учиться. - person RobotRock; 01.04.2014
comment
Вы также можете попытаться выяснить то же самое, просмотрев исходники KDE, но они намного сложнее, и вы потратите некоторое время даже на то, чтобы найти интересные для вас места. Насчет нестабильности: 1.4 вышла недавно. Команде потребовалось 2 года, чтобы продвинуться так далеко, что должно дать вам представление о том, какие усилия необходимы для написания оконного менеджера для X. - person Aaron Digulla; 01.04.2014
comment
Альтернативой может быть Mir, но он ориентирован на мобильные устройства и еще более нестабилен. - person Aaron Digulla; 01.04.2014
comment
@AaronDigulla: Wayland - это просто протокол, и там не так много поддержки программ для конечных пользователей. Да, в принципе, Wayland + Weston позволили бы OP делать то, что он хочет. ИМХО однако Wayland не очень хорошая инфраструктура для управления окнами. Это слишком низкий уровень, чтобы служить надежной основой для создания ускоренных наборов инструментов (требуется много дублирования кода, поскольку клиенты должны заботиться о характеристиках устройства вывода). Но в то же время это слишком высокий уровень для облегченной инфраструктуры графических драйверов, на основе которой можно было бы построить масштабируемый сервер отображения. - person datenwolf; 01.04.2014