Введение
Тип оконного менеджера
A compositing manager, or compositor, is software that provides applications with an off screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager. Compositing managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation. Since the screen is double buffered, it does not flicker during updates. The most commonly used compositing managers and compositing window managers include:
for Linux, BSD, Hurd and OpenSolaris using the X Window System: the Compiz, KWin, Xfwm, Enlightenment, Muffin (compositing window manager for Cinnamon DE), and Mutter compositing window managers and the xcompmgr and picom compositors;
for Linux and BSD using Wayland: the Weston, KWin, and Mutter compositing window managers;
for Windows: the Desktop Window Manager; and
for macOS: the Quartz Compositor.
Композитный менеджер, или композитор, – это программное обеспечение, которое предоставляет приложениям буфер вне экрана для каждого окна. Композитный менеджер объединяет буферы окон в изображение, представляющее экран, и записывает результат в память дисплея. Оконный менеджер с композитингом – это оконный менеджер, который также является композитным менеджером. Композитные менеджеры могут выполнять дополнительную обработку буферизованных окон, применяя 2D и 3D анимированные эффекты, такие как смешивание, затемнение, масштабирование, вращение, дублирование, искривление и деформация, перемешивание, размытие, перенаправление приложений и перемещение окон на один из нескольких дисплеев и виртуальных рабочих столов. Технологии компьютерной графики позволяют визуализировать эффекты в реальном времени, такие как тени, предварительный просмотр в реальном времени и сложную анимацию. Поскольку экран использует двойную буферизацию, он не мерцает при обновлении. Наиболее часто используемые композитные менеджеры и оконные менеджеры с композитингом включают:
A compositing manager, or compositor, is software that provides applications with an off screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager. Compositing managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation. Since the screen is double buffered, it does not flicker during updates. The most commonly used compositing managers and compositing window managers include:
for Linux, BSD, Hurd and OpenSolaris using the X Window System: the Compiz, KWin, Xfwm, Enlightenment, Muffin (compositing window manager for Cinnamon DE), and Mutter compositing window managers and the xcompmgr and picom compositors;
for Linux and BSD using Wayland: the Weston, KWin, and Mutter compositing window managers;
for Windows: the Desktop Window Manager; and
for macOS: the Quartz Compositor.
для Linux, BSD, Hurd и OpenSolaris с использованием X Window System: Compiz, KWin, Xfwm, Enlightenment, Muffin (оконный менеджер с композитингом для Cinnamon DE) и Mutter, а также композиторы xcompmgr и picom;
для Linux и BSD с использованием Wayland: оконные менеджеры с композитингом Weston, KWin и Mutter;
для Windows: Desktop Window Manager; и
для macOS: Quartz Compositor.
A compositing manager, or compositor, is software that provides applications with an off screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager. Compositing managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation. Since the screen is double buffered, it does not flicker during updates. The most commonly used compositing managers and compositing window managers include:
for Linux, BSD, Hurd and OpenSolaris using the X Window System: the Compiz, KWin, Xfwm, Enlightenment, Muffin (compositing window manager for Cinnamon DE), and Mutter compositing window managers and the xcompmgr and picom compositors;
for Linux and BSD using Wayland: the Weston, KWin, and Mutter compositing window managers;
for Windows: the Desktop Window Manager; and
for macOS: the Quartz Compositor.
История
Одной из первых систем с компоновкой окон была Commodore Amiga, выпущенная в 1985 году. Приложения могли сначала запросить область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Оконная система Amiga затем использовала серию операций копирования блоков (bit blits) с помощью аппаратного блитера системы для создания композиции из растровых изображений этих приложений вместе с кнопками и ползунками в видеопамяти, без необходимости перерисовывать эти растровые изображения приложениями. 24 марта 2001 года Mac OS X v10.0 стала первой массовой операционной системой, предлагающей программную 3D-композицию и эффекты, реализованные компонентом Quartz. С выпуском Mac OS X v10.2 и Quartz Extreme задача композиции могла быть перенесена на выделенное графическое оборудование. В 2003 году Sun Microsystems продемонстрировала амбициозную 3D-графическую систему под названием Project Looking Glass, предназначенную для работы поверх своего инструментария Swing. Она была впервые показана на выставке LinuxWorld Expo 2003 года. Хотя Apple угрожала подать в суд на Sun за нарушение прав интеллектуальной собственности, другие менеджеры окон реализовали некоторые функции Looking Glass. К 2006 году Sun прекратила разработку, поскольку основной бизнес компании сместился от графически ориентированных Unix-рабочих станций к продаже корпоративных мэйнфреймов. Microsoft впервые представила Desktop Window Manager в рамках проекта Longhorn на конференции Windows Hardware Engineering Conference 2003 года, продемонстрировав эффект "дрожащих" окон. Серьезные задержки в разработке Longhorn привели к тому, что Microsoft не представила свой 3D-компоновщик окон до выхода Windows Vista в январе 2007 года. Реализация композиции в X Window System потребовала некоторой переработки, которая происходила постепенно. Metacity 2.8.4 был выпущен в августе 2004 года. Однако первым широко известным компоновщиком окон для X был Xfwm, выпущенный в январе 2005 года. 26 января 2005 года был выпущен Compiz, представивший полностью аппаратное 3D-композирование на платформе Linux. KWin от KDE также поддерживает композицию.
Композит и 3D-эффекты в операционных системах
При композиции 3D-эффекты могут быть применены к окнам для создания 3D-эффектов рабочего стола. Современные компонующие менеджеры окон используют 3D-аппаратное ускорение. Программное обеспечение компонующих менеджеров окон взаимодействует с графическим оборудованием через программные интерфейсы, такие как OpenGL или Direct3D. Первые широко распространенные реализации этой технологии появились в Mac OS X 10.2 для Mac и в прототипе Luminocity для Linux. В настоящее время OpenGL используют менеджеры окон Compiz, KWin и Quartz Compositor, а Desktop Window Manager использует DirectX 9. Аппаратная поддержка OpenGL пока неполная, поэтому производительность композиции на основе OpenGL должна продолжать расти по мере совершенствования аппаратного обеспечения.
X11 и Уэйленд
Управляющие окнами для наложения, работающие в системе X Window System (X11), требовали расширения для хрома-ключа или зеленого экрана. Композитинг был представлен посредством расширения Composite Extension. Менеджеры композитинга используют аппаратное ускорение через это расширение, если оно доступно. В X11 возможность выполнения полного 3D-ускоренного композитинга требовала фундаментальных изменений в протоколе оконной системы для использования аппаратного ускорения. Изначально появилось несколько модифицированных реализаций X11, разработанных на базе OpenGL, включая Xgl. Введение AIGLX устранило необходимость использования Xgl и позволило менеджерам окон выполнять 3D-ускоренный композитинг на стандартном X-сервере, сохраняя при этом возможность прямого рендеринга. В настоящее время карты NVIDIA, Intel и ATI поддерживают AIGLX. Compiz представил эффект куба, позволяющий пользователю видеть до 6 виртуальных рабочих столов одновременно. Каждый рабочий стол преобразуется в текстуру поверхности куба, которую можно вращать по желанию. Compiz отображает широкий спектр 2D и 3D эффектов и имеет относительно невысокие требования к аппаратному обеспечению. В 2012 году Compiz был включен в Ubuntu Linux и автоматически активировался при наличии поддерживаемого оборудования и драйверов, если пользователь не выбрал 2D-режим. Mutter (Metacity + Clutter) заменил Metacity в качестве менеджера окон по умолчанию для GNOME. Он представлен в компоненте GNOME Shell в GNOME 3.0. Он использует движок отображения Clutter, который был портирован на все основные операционные системы, нетбуки и смартфоны. Начиная с версии 4, менеджер окон KDE KWin обладает возможностями композитинга. KWin имеет значительную часть той же функциональности, что и Compiz. С протоколом Wayland компостирующий менеджер окон также является сервером отображения; отдельного сервера отображения от менеджера окон нет. Комбинированный менеджер окон и сервер отображения называется композитором Wayland. Weston является эталонной реализацией композитора Wayland, а KWin и Mutter также являются композиторами Wayland, наряду с тем, что они являются менеджерами окон композитинга X11.
Ява
Project Looking Glass был менеджером окон, сочетавшим 3D-рендеринг и кроссплатформенный язык программирования Java. В настоящее время проект неактивен и распространяется под лицензией GNU General Public License. Дистрибутив Granular Linux Live CD включает Looking Glass в качестве опционального менеджера окон. После прекращения разработки некоторые его функции, такие как переключение между окнами по принципу "обложки" и предварительный просмотр окон в виде миниатюр, были реализованы в других менеджерах окон. К его наиболее оригинальным особенностям относились наклон окон, двусторонние рамки окон и фоны с эффектом параллакса при прокрутке.
AmigaOS 4 и MorphOS
Хотя они способны работать на оборудовании с поддержкой 3D, AmigaOS 4 и MorphOS разработаны для запуска на старых компьютерах Amiga, начиная с Amiga 1200. Соответственно, их оконные менеджеры в основном используют плоское (планарное) рендеринг, поддерживающее композитное наложение слоев, альфа-смешивание, градиенты, высокое разрешение и несколько рабочих столов ("экранов"), которые могут частично перекрывать друг друга.
Microsoft Windows
Хотя менеджер окон в Windows 2000 и выполняет композицию, он не поддерживает преобразования, такие как альфа-канал для каждого пикселя. Лишь немногие коммерческие приложения использовали альфа-смешивание; бесплатные программы одними из первых начали с ним экспериментировать, правда, через необязательные настройки. Композиция была внедрена вместе с Desktop Window Manager в Windows Vista. Windows Vista предоставляет гаджеты, которые пользователь может размещать на боковой панели Windows (гаджеты боковой панели), на стартовой странице Windows Live (веб-гаджеты) или на внешнем дисплее, например, на мобильном телефоне пользователя (гаджеты SideShow). Боковая панель Windows была видимой областью в Windows Vista и была удалена в Windows 7 вместе с гаджетами боковой панели, которые были переименованы в гаджеты рабочего стола.
Переходы и другие последствия
До того, как были разработаны компонующие оконные менеджеры, окна мгновенно появлялись и исчезали, что противоречило метафоре интерфейса (и реальной офисной обстановке). Некоторые системы, такие как Classic Mac OS, решали эту проблему с помощью ZoomRects, анимируя границы окон, как бы "приближающиеся" к конечному положению. Однако в большинстве систем внезапное появление и исчезновение элементов графического интерфейса могло сбивать с толку или даже казаться хаотичным неопытным пользователям. Визуальные переходы обеспечивают контекст и помогают понять взаимосвязь между элементами графического интерфейса. Вместо мгновенного исчезновения окно может плавно затухать или заметно уменьшаться до панели задач. Выпадающее меню, при нажатии, может плавно расширяться от панели меню, облегчая определение его источника и назначения. Постепенные и естественные переходы особенно полезны для пожилых или слабовидящих пользователей, которые медленнее и менее четко воспринимают изменения на экране. Например, неопытный пользователь мог бы импульсивно кликнуть по случайно активированному меню, что привело бы к потере данных. Небольшая задержка, необходимая для отображения визуального перехода, может дать пользователю достаточно времени для обдуманного действия и избежать подобных ошибок.
Фасады пользовательского интерфейса
Metisse реализует фасады пользовательского интерфейса – систему, обеспечивающую пользователям простые средства для адаптации, переконфигурации и комбинирования существующих графических интерфейсов посредством методов прямой манипуляции.