Компоновка оконного менеджера
Менеджер композиции , или композитор , — это программное обеспечение, которое предоставляет приложениям внеэкранный буфер для каждого окна. Менеджер композиции объединяет оконные буферы в изображение, представляющее экран, и записывает результат в память дисплея. Оконный менеджер композитинга — это оконный менеджер , который также является менеджером композитинга. [ 1 ] [ 2 ]
Менеджеры композиции могут выполнять дополнительную обработку буферизованных окон, применяя 2D- и 3D- анимационные эффекты, такие как смешивание , затухание , масштабирование , вращение , дублирование , изгиб и искажение, перетасовка, размытие , перенаправление приложений и перевод окон в одно из нескольких отображений и виртуальные рабочие столы . Технология компьютерной графики позволяет визуализировать визуальные эффекты в реальном времени, такие как тени , предварительный просмотр в реальном времени и сложную анимацию. [ 3 ] [ 4 ] Поскольку экран имеет двойную буферизацию , он не мерцает во время обновлений.
Наиболее часто используемые менеджеры композитинга и оконные менеджеры композитинга включают в себя:
- для Linux , BSD , Hurd и OpenSolaris с использованием X Window System : Compiz , KWin , Xfwm , Enlightenment , Muffin (оконный менеджер композитинга для Cinnamon DE) и оконные менеджеры композитинга Mutter xcompmgr и picom ; , а также наборщики
- для Linux и BSD с использованием Wayland : оконные менеджеры компоновки Weston , KWin и Mutter;
- для Windows : диспетчер окон рабочего стола ; и
- для macOS : Quartz Compositor .
Контраст со штабелируемыми оконными менеджерами
[ редактировать ]Диспетчер окон отправляет каждому окну сообщение о необходимости перерисовки при необходимости. Окна могут перекрываться. При перемещении окна впереди может открыться область окна позади, которая ранее была скрыта. Оконные менеджеры в общих чертах подразделяются на категории по их стратегии отображения этой вновь открытой области пользователю. В стратегии «наслоения» оконный менеджер приказывает заднему окну перерисоваться. В стратегии «композиции» оконный менеджер поддерживает буфер внеэкранной памяти, содержащий полный внешний вид каждого окна, включая заднее окно.
При использовании менеджера стека процесс перерисовки может быть нарушен, если программа, которая работает медленно, не отвечает или содержит ошибки, не отвечает на сообщения своевременно. [ 5 ] [ 6 ] Вредоносная программа может привести к нестабильной работе системы, просто пренебрегая перерисовкой ее окна. Тогда может возникнуть одно или несколько из следующих состояний:
- обрезанное . окно не перерисовывает непокрытые области, в результате чего остаются либо пустые места, либо «след» от другого окна
- части окон (например, декоративные тени) остались позади и не закрашены должным образом.
- указатель мыши поврежден [ 7 ] [ ненадежный источник ]
- весь экран зависает до тех пор, пока программа не ответит или не закроется [ 8 ]
При использовании менеджера композиции, если окно перестает перерисовываться по запросу оконного менеджера, его последняя перерисовка останется отображенной, и окно может быть затемнено. Часто заголовок меняется, чтобы отразить статус окна как не отвечающего. Программа может запретить перемещение или отмену отображения своего окна, но обычно это не вызывает проблем с перерисовкой.
История
[ редактировать ]Одной из первых систем с композитной оконной системой была Commodore Amiga , выпущенная в 1985 году. Приложения могли сначала запрашивать область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Затем оконная система Amiga будет использовать серию бит-блитов системы с использованием аппаратного блиттера для создания композиции растровых изображений этих приложений - вместе с кнопками и ползунками - в памяти дисплея, не требуя от этих приложений перерисовывать какие-либо из своих растровых изображений. [ 9 ]

24 марта 2001 года Mac OS X v10.0 стала первой основной операционной системой , в которой реализована программная 3D-композиция и эффекты, обеспечиваемые ее компонентом Quartz . С выпуском Mac OS X v10.2 и Quartz Extreme работа по композиции может быть перенесена на специализированное графическое оборудование . [ 2 ] [ 10 ]
В 2003 году Sun Microsystems продемонстрировала амбициозную систему 3D-графики под названием Project Looking Glass, которая стала дополнением к своему набору инструментов Swing . Впервые он был показан на LinuxWorld Expo в 2003 году . Хотя Apple пригрозила подать в суд на Sun за нарушение прав интеллектуальной собственности , другие оконные менеджеры реализовали некоторые функции в Looking Glass. К 2006 году разработка была прекращена компанией Sun, основной деятельностью которой был переход от графически ориентированных рабочих станций Unix к продаже корпоративных мэйнфреймов. [ 11 ]
Microsoft впервые представила Desktop Window Manager в проекте Longhorn на конференции Windows Hardware Engineering Conference 2003 года , продемонстрировав шаткие окна . [ 12 ] Серьезные задержки в разработке Longhorn привели к тому, что Microsoft не представила свой оконный менеджер 3D-композиции до выпуска Windows Vista в январе 2007 года. [ 13 ]
Реализация композитинга в системе X Window потребовала некоторой доработки, которая происходила постепенно. [ 14 ] Metacity 2.8.4 был выпущен в августе 2004 года. [ 15 ] Однако первым широко разрекламированным оконным менеджером для X был Xfwm , выпущенный в январе 2005 года. [ 16 ] 26 января 2005 года был выпущен Compiz , представивший полностью ускоренный 3D-композитинг на платформе Linux. [ 17 ] KDE от KWin также поддерживает композицию.
Композитинг и 3D-эффекты в операционных системах
[ редактировать ]При композитинге к окнам можно применять 3D-эффекты для создания 3D-эффектов рабочего стола. Современные оконные менеджеры композитинга используют аппаратное 3D-ускорение. Программное обеспечение оконного менеджера композитинга взаимодействует с графическим оборудованием через программные интерфейсы, такие как OpenGL или Direct3D .
Самые ранние широко распространенные реализации, использующие эту технику, были выпущены для Mac в Mac OS X 10.2 и для Linux в прототипе Luminocity . В настоящее время оконные менеджеры, использующие OpenGL, включают Compiz, KWin и Quartz Compositor, а Desktop Window Manager в настоящее время использует DirectX 9. OpenGL по-прежнему не полностью поддерживается аппаратно, поэтому производительность композиции на основе OpenGL должна продолжать улучшаться по мере совершенствования оборудования. [ нужна ссылка ] .
X11 и Вэйланд
[ редактировать ]Для стекирования оконных менеджеров, работающих в системе X Window (X11), требовалось хромакея или зеленого экрана расширение . [ нужна ссылка ] Композитинг был представлен посредством Composite Extension . Менеджеры композитинга используют аппаратное ускорение через это расширение, если оно доступно.

В X11 возможность выполнять полную 3D-ускоренную композицию требовала фундаментальных изменений в протоколе оконной системы для использования аппаратного ускорения. ряд модифицированных реализаций X11, разработанных на основе OpenGL Первоначально начал появляться , включая Xgl . Внедрение AIGLX устранит необходимость использования Xgl и позволит оконным менеджерам выполнять ускоренную 3D-композицию на стандартном X-сервере, сохраняя при этом возможность прямого рендеринга . В настоящее время карты NVIDIA , Intel и ATI поддерживают AIGLX.
Compiz представил эффект куба, который позволяет пользователю видеть до 6 виртуальных рабочих столов одновременно. Каждый рабочий стол преобразуется в текстуру поверхности куба, которую можно вращать по своему желанию. Compiz отображает широкий спектр 2D и 3D эффектов и имеет относительно низкие требования к оборудованию. [ 18 ] В 2012 году Compiz был включен в Ubuntu Linux и включался автоматически, когда было доступно поддерживаемое оборудование и драйверы и пользователь не выбирал 2D-режим. [ 19 ]
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 в качестве дополнительного оконного менеджера.
После прекращения его поддержки некоторые его функции, такие как переключение обложек и предварительный просмотр миниатюр, нашли свое применение в других оконных менеджерах. Его более оригинальные особенности включали наклон окон, двусторонние оконные рамы и с параллаксной прокруткой фон .
АмигаОС 4 и МорфОС
[ редактировать ]Хотя AmigaOS 4 и MorphOS могут работать на оборудовании с поддержкой 3D, они предназначены для работы на старых устаревших компьютерах Amiga, начиная с Amiga 1200 . Таким образом, их оконные менеджеры имеют в основном возможности планарного рендеринга, включая составное наложение слоев, альфа-смешение, градиенты, высокое разрешение и несколько рабочих столов («экранов»), которые могут частично обрезать друг друга.
Microsoft Windows
[ редактировать ]Хотя оконный менеджер в Windows 2000 выполняет композицию, он не выполняет преобразования, такие как попиксельная альфа. Лишь немногие коммерческие приложения использовали преимущества альфа-смешивания; Бесплатные программы были одними из первых, кто экспериментировал с ним, хотя и с дополнительными настройками. [ 20 ] [ 21 ] Композитинг был представлен в диспетчере окон рабочего стола в Windows Vista . [ 1 ]
Windows Vista и Windows 7 позволяют пользователю отключить диспетчер окон рабочего стола, выбрав базовые настройки внешнего вида Windows. Кроме того, он автоматически отключается Windows для выполнения аппаратного наложения через фильтр Overlay Mixer Filter .
Удобство использования и приятное впечатление
[ редактировать ]Подход к композитингу упрощает реализацию ряда функций, которые делают пользовательский интерфейс более доступным, простым в использовании или с привлекательными элементами.
Лупы
[ редактировать ]
Векторная графика , такая как шрифты TrueType и элементы с 3D-ускорением, может быть расширена без ухудшения качества (обычно из-за псевдонимов ). Экранная лупа увеличивает область экрана, облегчая чтение частей текста — для предотвращения перенапряжения глаз , для людей с ослабленным зрением или просто на расстоянии. Эффекты масштабирования , такие как лупа «рыбий глаз» и эффекты масштабирования рабочего стола, обеспечивают эту функциональность.
Предварительный просмотр в реальном времени
[ редактировать ]всплывающего окна Предварительный просмотр окна может отображаться в виде миниатюры , когда пользователь наводит курсор на соответствующую кнопку на панели задач . Это позволяет пользователю идентифицировать и управлять несколькими одновременно запущенными программами.
Переключение окон
[ редактировать ]
Окна со схожими именами и значками обычно вызывают путаницу, особенно когда их заголовки перекрываются; положение каждого такого окна на панели задач необходимо запомнить. Когда таким образом открыто много окон, пользователю часто приходится прибегать к методу проб и ошибок — нажимая каждую кнопку панели задач одну за другой — прежде чем продолжить. Переключение окон позволяет быстро просмотреть несколько окон одновременно, временно переставляя их на декоративном фоне. После того, как выбор сделан, окнам восстанавливается исходное расположение.
Выбор начинается, когда пользователь либо вводит комбинацию горячих клавиш , перемещает указатель мыши в горячую точку на экране мыши или, в некоторых ситуациях, использует колесо прокрутки . Навигация по элементам осуществляется с помощью клавиатуры или мыши. Элемент можно выбрать, отпустив горячую клавишу, нажав клавишу Enter или щелкнув по нему мышью.
Флип-переключение
[ редактировать ]
Переключатель является усовершенствованием функции переключения Alt-Tab . Запускающие окна сгруппированы в стопку — подобно переключателю в музыкальном автомате 1950-х годов или Rolodex . В некоторых системах пользователь может нажать Alt-Shift-Tab для перехода назад. Визуальные переходы применяются к каждому элементу во время навигации.
Распространенные реализации флип-переключения включают Flip 3D в Windows и Shift Switcher в Compiz.
Переключение крышки
[ редактировать ]
Переключение обложек похоже на переключение с помощью флип-переключения с некоторыми, в основном визуальными, отличиями. Вместо одной стопки с выделением вверху отображаются две симметричные стопки с текущим выделением спереди и по центру (аналогично функции наклона окна в «Зеркале»).
Cover Flow — это реализация переключения обложек в macOS. В более поздних версиях используется размытие, чтобы уменьшить выделение невыбранных элементов. Cover Flow также был реализован в другом программном обеспечении, выпущенном Apple , например, в iTunes .
Это также называется «просмотром кинокниги».
Переключение кольца
[ редактировать ]
Кольцевое переключение похоже на переключение, за исключением того, что окна перемещаются по кругу, а текущий выбор находится впереди, обычно внизу. Большинство оконных менеджеров композитинга включают эту функцию «из коробки» , также доступны сторонние приложения , такие как 3d-desktop .
Группировка
[ редактировать ]Пользователь может группировать окна так, чтобы в каждой группе одновременно было видно только одно окно. В Compiz рамка окна переворачивается, чтобы указать, когда активное окно в его группе было изменено.
Незащищенный
[ редактировать ]macOS отображает предварительный просмотр каждого окна на экране, располагая их плиткой. Другие системы со схожим функционалом (Microsoft Windows, Compiz, KWin, сторонние приложения) называются клонами Exposé. Горячая клавиша для активации Exposé — это не Alt-Tab, а F3.
Управление миссией
[ редактировать ]Mac OS X 10.7 объединяет несколько других функций композитинга, разработанных Apple, таких как Exposé, Dashboard и Spaces , в более крупную программу под названием Mission Control .
Движки виджетов
[ редактировать ]В macOS «виджеты» (специальные апплеты ), такие как часы, блокнот и калькулятор, могут появляться при нажатии горячей клавиши . Механизмы виджетов ускоряют работу, сохраняя часто используемые виджеты доступными, но при этом ненавязчивыми. Они обрабатываются программой Dashboard в macOS.
Compiz начинается с пустого слоя виджетов, что позволяет пользователю добавлять приложения, щелкая по ним. Поддерживаются различные виджеты, включая Screenlets , gDesklets и SuperKaramba . [ 22 ]
Windows Vista предоставляет гаджеты , которые пользователь может разместить на боковой панели Windows (гаджеты боковой панели), Windows Live стартовой странице (веб-гаджеты) или на внешнем дисплее, например на мобильном телефоне пользователя ( гаджеты SideShow ). Боковая панель Windows была видимым разделом в Windows Vista и была удалена в Windows 7 вместе с гаджетами боковой панели, которые были заменены на гаджеты рабочего стола .
Переходы и другие эффекты
[ редактировать ]До того, как были разработаны составные оконные менеджеры, окна мгновенно появлялись и исчезали из поля зрения, что несовместимо с метафорой интерфейса (и с настройками физического офиса ). Некоторые системы, такие как Classic Mac OS, избежали этой проблемы с помощью ZoomRects , анимируя контур окна, «масштабируя» его к конечному положению. [ 23 ] Но в большинстве систем внезапное появление и исчезновение элементов графического интерфейса может показаться неопытным пользователям запутанным или даже хаотичным. [ нужна ссылка ] Визуальные переходы обеспечивают контекст и помогают различать причинно-следственные связи элементов графического интерфейса. Вместо того, чтобы просто исчезнуть, окно может исчезнуть или заметно сжаться до панели задач. Выпадающее меню, по которому был сделан щелчок, может плавно выходить за пределы строки меню, что упрощает определение его происхождения и назначения.
Возможны постепенные и естественные переходы. [ оригинальное исследование? ] особенно полезно для пожилых людей или пользователей с ослабленным зрением, которые замечают изменения на экране медленнее и с меньшей четкостью. Например, неопытный пользователь может импульсивно щелкнуть меню, которое было активировано случайно, что приведет к потере работы. Короткая задержка, необходимая для отображения визуального перехода, может дать пользователю достаточно времени, чтобы принять осознанное решение и избежать подобных ошибок.
Фасады пользовательского интерфейса
[ редактировать ]Metisse реализует фасады пользовательского интерфейса — систему, которая предоставляет пользователям простые способы адаптации, реконфигурации и рекомбинации существующих графических интерфейсов посредством использования методов прямого манипулирования . [ 24 ]
Список оконных менеджеров композиции
[ редактировать ]- 3Dwm , менеджер трехмерного рабочего пространства [ 25 ] и универсальная платформа для 3D пользовательских интерфейсов. [ 26 ] [ 27 ] [ 28 ] По состоянию на июнь 2006 года этот проект неактивен.
- Диспетчер окон рабочего стола и тема Windows Aero в Windows
- Кварцевый композитор на macOS
- Компиз
- Марко
- KWin (начиная с версии 3.3)
- Мать
- Xfwm из Xfce (начиная с версии 4.2)
- Метисс
- Мир (начиная с версии 1.0)
Список автономных менеджеров композитинга
[ редактировать ]- xcompmgr — минимальная альтернатива Compiz
- Compton – форк dcompmgr с исправленными ошибками, который является форком xcompmgr. (Не поддерживается с 2017 года.)
- Picom — облегченный композитор для X11. Это форк Комптона.
- Cairo Compmgr (Cairo Composite Manager) — дополнение к существующим оконным менеджерам. Он использует Cairo , библиотеку векторной графики, также используемую в GTK+ .
- Unagi Compositing Manager — менеджер композитинга, который можно использовать вместе с существующим оконным менеджером. Он использует библиотеку XCB . (Не поддерживается с 2014 года.)
- MCompositor — используется на MeeGo . телефонах
Операционные системы с композитными оконными менеджерами
[ редактировать ]- Mac OS X 10.0 и более поздние версии
- любая Unix-подобная ОС, использующая XOrg / AIGLX или Xgl
- АмигаОС 4
- МорфОС 2.0 и более поздние версии
- Windows Vista и более поздние версии
См. также
[ редактировать ]- Оконный менеджер
- Тайлинговый оконный менеджер
- Стекирование оконного менеджера
- Изменение родительского оконного менеджера
- Сохраненный режим
- Масштабирование пользовательского интерфейса
- Компьютерная графика
Ссылки
[ редактировать ]- ^ Jump up to: а б «Диспетчер окон рабочего стола» . Microsoft Learn . 23 августа 2019 г. Проверено 25 апреля 2023 г.
- ^ Jump up to: а б «Mac OS X 10.4 Tiger: страница 13» . Arstechnica.com. 28 апреля 2005 года . Проверено 21 ноября 2008 г.
- ^ «Compiz.org :: Главная/Начало – Compiz» . Компиз.орг. Архивировано из оригинала 12 октября 2006 года . Проверено 21 ноября 2008 г.
- ^ "Чертеж: "Композитное управление окнами (compiz/beryl)" " . Blueprints.launchpad.net. 17 октября 2006 г. Проверено 21 ноября 2008 г.
- ^ «Несколько экземпляров Internet Explorer не перерисовывают экран правильно» . Майкрософт. 9 октября 2003 года . Проверено 17 декабря 2010 г.
- ^ «Часто задаваемые вопросы по поддержке PHOTOSCORE» . Проверено 17 декабря 2010 г.
- ^ «Повреждение курсора мыши на xinerama» . Canonical Ltd., 2 августа 2006 г. Проверено 17 декабря 2010 г.
- ^ «Мустанг: приложения Swing зависают, а затем повреждаются» . Оракул. 1 мая 2006 г. Архивировано из оригинала 26 июля 2011 г. Проверено 17 декабря 2010 г.
- ^ «Руководство по библиотекам Amiga RKM» .
- ^ «Краткая история Mac OS X» . Kernelthread.com. Архивировано из оригинала 22 января 2009 года . Проверено 21 ноября 2008 г.
- ^ Маркофф, Джон (26 апреля 2007 г.). «Sun и IBM предлагают новый класс высокопроизводительных серверов» . Нью-Йорк Таймс .
- ^ «Интерфейс Microsoft Longhorn 3D — появляется дополнительная информация» . ЭкстримТех.
- ^ «История Microsoft Windows» . Computerhope.com . Проверено 21 ноября 2008 г.
- ^ «(Ре)Архитектура системы X Window» . Keithp.com . Проверено 21 ноября 2008 г.
- ^ «Метасити 2.8.4» . Совместимость с Linux . 30 августа 2004 года . Проверено 13 июня 2023 г.
- ^ «Выпущен Xfce 4.2.0!» . foo-projects.org. 16 января 2005 г. Проверено 25 февраля 2009 г.
- ^ «История версий – Настройки в прятки» . Hideseek.sourceforge.net . Проверено 21 ноября 2008 г.
- ^ «Установка/запуск Compiz на GeForce2 MX/MX 400» .
- ^ «За что отвечает приложение «compiz» в Ubuntu 12.04?» .
- ^ «Пример утилиты альфа-прозрачности» .
- ^ «Альфа-смешивание (прозрачных) окон» . КодГуру. Архивировано из оригинала 30 июня 2008 года . Проверено 26 июля 2008 г.
- ^ «Плагины/Виджеты — Compiz Wiki» . Компиз. Архивировано из оригинала 23 декабря 2010 года . Проверено 26 декабря 2010 г.
- ^ «Высокотехнологичные бинокли» . 11 января 2017 г.
- ^ «Metisse: Фасады пользовательского интерфейса» . Метисс. Архивировано из оригинала 30 августа 2011 года . Проверено 3 августа 2011 г.
- ^ 3Dwm — About , 23 января 2004 г., заархивировано из оригинала 6 февраля 2004 г. , получено 4 февраля 2010 г.
- ^ 3Dwm — О проекте — FAQ — О проекте , 3 декабря 2003 г., архивировано из оригинала 24 февраля 2004 г. , получено 4 февраля 2010 г.
- ^ 3D оконный менеджер , заархивировано из оригинала 17 июля 2011 г. , получено 16 декабря 2010 г.
- ^ Йергин, Рэй (31 марта 2005 г.), 3DWM: снимок экрана 3D-рабочего стола , получено 16 декабря 2010 г.
Внешние ссылки
[ редактировать ]- Различные эффекты в Compiz на YouTube
- Сравнение Windows Aero и Compiz на YouTube
- Mac OS X и Quartz Compositor на YouTube
- Тени и прозрачность в xcompmgr на YouTube
- Переключение рабочего стола с помощью 3d-рабочего стола на YouTube
- Переключение рабочего стола с помощью эффекта куба на YouTube
- Официальное демонстрационное видео Project Looking Glass на YouTube.
- Фоновые и оконные эффекты в Looking Glass на YouTube