Составление оконного менеджера - Википедия - Compositing window manager

А композитинг оконный менеджер, или же наборщик, это оконный менеджер что обеспечивает приложениям вне экрана буфер для каждого окна. Оконный менеджер композиты окно буферизуется в изображение, представляющее экран, и записывает результат в память дисплея.[1][2]

Составные оконные менеджеры могут выполнять дополнительную обработку буферизованных окон, применяя 2D и 3D анимированные эффекты, такие как смешивание, угасание, масштабирование, вращение, дублирование, изгибание и искривление, перетасовка, размытие, перенаправление приложений и Идет перевод окна в одно из ряда отображает и виртуальные рабочие столы. Технология компьютерной графики позволяет визуализировать визуальные эффекты в реальном времени, например отбрасывать тени, предварительный просмотр и сложная анимация.[3][4]Поскольку экран с двойной буферизацией, это не мерцание во время обновлений.

К наиболее часто используемым оконным менеджерам композитинга относятся:

Сравнение со стековыми оконными менеджерами

В оконный менеджер отправляет каждому окну сообщение перерисовывать себя, когда это необходимо (например, при изменении размера или при прохождении другого окна перед ним). С диспетчером стека процесс перерисовки может быть нарушен, если программа работает медленно, не отвечает или багги не отвечает на сообщения своевременно.[5][6] Вредоносная программа может вызвать нестабильную работу системы, просто не перекрасив ее окно. Тогда может произойти одно или несколько из следующих условий:

  • а обрезанный window не перерисовывает непокрытые области, в результате чего остаются пустые места или "след", оставленный от другого окна
  • части окон (например, декоративные падающие тени) оставлены позади и не закрашены должным образом
  • указатель мыши поврежден[7][ненадежный источник ]
  • обновления экрана становятся невыносимо медленными[8]
  • весь экран зависает, пока программа не ответит или не завершится[9]

В диспетчере композитинга, если окно перестает перерисовываться по запросу диспетчера окон, его последняя перерисовка останется отображаемой, и окно может быть затемнено. Часто заголовок меняется, чтобы отразить статус окна как не отвечающего. Программа может препятствовать перемещению или отмене отображения своего окна, но обычно не вызывает проблем с перерисовкой.

История

Одной из первых систем с оконной системой композитинга была Commodore Amiga, выпущенный в 1985 году. Приложения могут сначала запросить область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Тогда оконная система Amiga будет использовать серию бит блит используя оборудование системы блиттер для создания композиции из растровых изображений этих приложений - вместе с кнопками и ползунками - в памяти дисплея, не требуя от этих приложений перерисовки каких-либо своих растровых изображений.[10]

Metacity оконный менеджер, часть ГНОМ.

24 марта 2001 г. Mac OS X v10.0 стал первым Основной поток Операционная система использовать программную 3D-композицию и эффекты, предоставляемые ее Кварцевый компонент. С выходом Mac OS X v10.2 и Кварц Экстрим, работа по композитингу может перейти в графическое оборудование.[2][11]

В 2003 г. Sun Microsystems продемонстрировал амбициозную систему 3D-графики под названием Проект Зазеркалье наложить на нее Качать Инструментарий. Впервые был показан на 2003 г. LinuxWorld Expo. Хотя Apple пригрозила подать в суд на Sun за нарушение интеллектуальная собственность прав, другие оконные менеджеры реализовали некоторые функции в Looking Glass. К 2006 году разработка была прекращена компанией Sun, основной бизнес которой переходил от графической ориентации. Рабочие станции Unix к продаже предприятие мэйнфреймы.[12]

Microsoft впервые представила диспетчер окон рабочего стола в Проект Longhorn к 2003 году Конференция по проектированию оборудования Windows, демонстрируя шаткие окна.[13] Серьезные задержки в разработке Longhorn вызванный Microsoft не выпускать оконный менеджер для 3D-композитинга до выхода Виндоус виста в январе 2007 г.[14]

Реализация композитинга под X Window System потребовался некоторый редизайн, который происходил постепенно.[15] Metacity 2.8.4 был выпущен в августе 2004 года.[16] Однако первый широко известный оконный менеджер композитинга для Икс был Xfwm, выпущенный в январе 2005 года.[17] 26 января 2005 г. Compiz был выпущен, вводя полностью ускоренный 3D-композитинг на платформу Linux.[18]KDE с KWin также поддерживает композитинг.

Композиция и 3D-эффекты в операционных системах

При компоновке трехмерные эффекты могут применяться к окнам для создания трехмерных эффектов рабочего стола. Современные оконные менеджеры композитинга используют аппаратное ускорение 3D. Программное обеспечение композитного оконного менеджера взаимодействует с графическим оборудованием через программные интерфейсы Такие как OpenGL или же Direct3D.

Самые ранние широко распространенные реализации этого метода были выпущены для Mac в Mac OS X 10.2 и для Linux в Светимость прототип. В настоящее время оконные менеджеры, использующие OpenGL, включают Compiz, KWin и Quartz Compositor, тогда как Desktop Window Manager в настоящее время использует DirectX 9. OpenGL все еще не полностью поддерживается на оборудовании, поэтому производительность композитинга на основе OpenGL должна продолжать улучшаться по мере улучшения оборудования.[нужна цитата ].

Linux

Стек оконных менеджеров, работающих на X сервер требуется цветность или зеленый экран расширение. Композиция была введена в виде "Композитное" расширение. Менеджеры компоновки используют аппаратное ускорение с помощью этого расширения, если оно доступно.

Ubuntu 8.04 Hardy Heron запускает переключатель сдвига Compiz в режиме переворота.

В Linux и UNIX возможность выполнять полный 3D-ускоренный композитинг потребовала фундаментальных изменений в X11 чтобы использовать аппаратное ускорение. Первоначально ряд модифицированных реализаций X11, разработанных для OpenGL начали появляться, в том числе Xgl. Вступление к AIGLX устранит необходимость в использовании Xgl и позволит оконным менеджерам выполнять 3D-ускоренную композицию на стандартном X-сервере, при этом позволяя прямой рендеринг. В настоящее время, NVIDIA, Intel, и ATI поддержка карт AIGLX.

Compiz представила эффект куба, который позволяет пользователю видеть до 6 виртуальных рабочих столов одновременно. Каждый рабочий стол преобразуется в текстуру поверхности куба, которую можно вращать по желанию. Compiz отображает широкий спектр 2D и 3D эффектов и имеет относительно низкие требования к оборудованию.[19] В 2012 году Compiz был включен в Ubuntu Linux и включалась автоматически, когда поддерживаемое оборудование и драйверы были доступны и пользователь не выбрал 2d Mode.[20]

Бормотать (Metacity + Беспорядок ) заменил Metacity в качестве оконного менеджера по умолчанию для ГНОМ. Он представлен в Оболочка GNOME компонент GNOME 3.0. Он использует механизм отображения Clutter, который был перенесен на все основные операционные системы, нетбуки и смартфоны.

Начиная с версии 4, оконный менеджер KDE KWin имеет возможности композитинга. KWin имеет большую часть тех же функций, что и в Compiz.

Ява

Project Looking Glass был оконным менеджером, сочетающим 3D-рендеринг и кроссплатформенность. Ява язык программирования. Сейчас он неактивен и выпущен под Стандартная общественная лицензия GNU. В Гранулированный Linux распространение live CD включает Looking Glass в качестве дополнительного оконного менеджера.

После того, как он был прекращен, некоторые из его функций, такие как переключение обложек и предварительный просмотр эскизов в реальном времени, нашли свое применение в других оконных менеджерах. Его более оригинальные особенности включали откидывающиеся окна, двусторонние оконные рамы и параллакс прокрутка фоны.

AmigaOS 4 и MorphOS

Хотя они могут работать на оборудовании с поддержкой 3D, AmigaOS 4 и MorphOS предназначены для работы на старых наследие Компьютеры Amiga, начиная с Амига 1200. Таким образом, их оконные менеджеры имеют в основном возможности плоского рендеринга, которые включают составные слои, альфа-смешивание, градиенты, высокое разрешение и несколько рабочих столов («экранов»), которые могут частично обрезать друг друга.

Майкрософт Виндоус

Хотя оконный менеджер в Windows 2000 выполняет композитинг, он не выполняет преобразования, такие как попиксельная альфа. Немногие коммерческие приложения использовали альфа-смешение; бесплатное ПО программы были одними из первых, кто экспериментировал с ним, хотя и с помощью дополнительных настроек.[21][22] Композиция была представлена ​​с Диспетчер окон рабочего стола в Виндоус виста.[1]

Windows Vista и Windows 7 позволяют пользователю отключить диспетчер окон рабочего стола, выбрав основные параметры внешнего вида Windows. Кроме того, он автоматически отключается Windows для выполнения аппаратный оверлей сквозь Overlay Mixer Filter.

Юзабилити и радость глаз

Композиционный подход упрощает реализацию ряда функций, которые делают пользовательский интерфейс более доступным, простым в использовании или с добавлением ярких элементов.

Лупы

Эффект увеличения в Compiz (щелкните изображение, чтобы просмотреть его в масштабе).

Векторная графика, Такие как TrueType шрифты и элементы с 3D-ускорением, могут быть расширены без ухудшения качества (обычно из-за сглаживание ). А экранная лупа увеличивает область экрана, облегчая чтение частей текста - нужно ли предотвратить напряжение глаз, для слабовидящий, или просто на расстоянии. Увеличить эффекты, такие как рыбий глаз эффекты лупы и масштабирования рабочего стола обеспечивают эту функциональность.

Предварительный просмотр в реальном времени

Предварительный просмотр окна может отображаться во всплывающем окне миниатюра когда пользователь парит связанный с ним панель задач кнопка. Это позволяет пользователю идентифицировать несколько одновременно запущенных программ и управлять ими.

Переключение окон

Основное переключение окон в Xgl.

Окна с похожими именами и значками часто вызывают путаницу, особенно когда их строки заголовков перекрываются; положение каждого такого окна на панели задач необходимо запомнить. Когда таким образом открыто много окон, пользователю часто приходится прибегать к методам проб и ошибок - нажимая каждую кнопку панели задач одну за другой - прежде чем продолжить. Переключение окон позволяет быстро просмотреть сразу несколько окон, временно переставляя их на декоративном фоне. После того, как выбор сделан, окнам восстанавливается исходное расположение.

Выбор начинается, когда пользователь либо вводит комбинация горячих клавиш, перемещает указатель мыши на точка доступа на экране, или, в некоторых случаях, использует мышь колесо прокрутки. Элементы перемещаются с помощью клавиатуры или мыши. Элемент выбирается путем отпускания горячей клавиши, нажатия клавиши Enter или щелчка по нему мышью.

Флип-переключение

Флип-переключение в Compiz.

Перекидной переключатель - это усовершенствование Alt-Tab функция переключения. Выполняющиеся окна организованы в стопку - аналогично переключателю в стиле флип в 1950-х годах. музыкальный автомат, или Rolodex. В некоторых системах пользователь может нажимать Alt-Shift-Tab для перехода назад. Визуальные переходы применяются к каждому элементу во время навигации.

Общие реализации флип-переключения включают: Переворот 3D в Windows и Переключатель переключения передач в Compiz.

Переключение крышки

Переключатель крышки в KWin.

Переключение обложки похоже на переключение переворота с некоторыми, в основном визуальными, отличиями. Вместо одной стопки с выделенной областью наверху отображаются две симметричные стопки с текущим выделением спереди и по центру (аналогично функции наклона окна в Looking Glass).

Cover Flow - это реализация переключения обложки в macOS. Более поздние версии используют размытие, чтобы не выделять невыделенные элементы. Cover Flow также был реализован в другом программном обеспечении, опубликованном яблоко Такие как iTunes.

Это также называется «просмотром книги».

Переключение звонка

Переключение звонков в Compiz Fusion.

Кольцевое переключение похоже на переключение флипом, за исключением того, что окна перемещаются по кругу, с текущим выделением впереди, обычно внизу. Большинство композитных оконных менеджеров включают эту функцию из коробки, и сторонние приложения, Такие как 3d-рабочий стол, также доступны.

Группировка

Пользователь может группировать окна вместе, так что в каждой группе одновременно отображается только одно окно. В Compiz фрейм окна переворачивается, чтобы указать, когда активное окно в его группе было изменено.

Разоблачать

macOS отображает предварительный просмотр каждого окна на экране, разбивая их мозаикой. Другие системы с аналогичной функциональностью (Microsoft Windows, Compiz, KWin, сторонние приложения) называются клонами Exposé. Горячая клавиша для активации Exposé - это не Alt-Tab, а F3.

Управление полетами

Mac OS X 10.7 сочетает в себе несколько других функций композитинга, разработанных Apple, таких как Exposé, Приборная панель, и Пространства —В большую программу под названием Управление полетами.

Двигатели виджетов

В macOS «виджеты» (одноцелевые апплеты ), такие как часы, блокнот и калькулятор, могут появиться при нажатии горячая клавиша. Механизмы виджетов ускоряют работу, делая часто используемые виджеты доступными, но ненавязчивыми. Они обрабатываются программой Dashboard в macOS.

Compiz начинается с пустого слоя виджетов, что позволяет пользователю добавлять приложения, щелкая по ним. Поддерживаются различные виджеты, в том числе Скриншоты, gDesklets и СуперКарамба.[23]

Windows Vista предоставляет гаджеты что пользователь может разместить на Боковая панель Windows (Гаджеты боковой панели), Windows Live Начальная страница (Веб-гаджеты) или внешний дисплей, например мобильный телефон пользователя (Гаджеты SideShow ). Боковая панель Windows была видимым разделом в Windows Vista и была удалена в Windows 7 вместе с гаджетами боковой панели, которые были изменены на Настольные гаджеты.

Переходы и другие эффекты

До того как были разработаны композитные оконные менеджеры, окна мгновенно появлялись и исчезали из поля зрения, что несовместимо с метафорой интерфейса (и с физическим офис параметр). Некоторые системы, такие как Классическая Mac OS избежал этой проблемы с ZoomRects, анимируя "приближение" контура окон к его окончательному положению.[24] Но в большинстве систем внезапное появление и исчезновение GUI элементы могут показаться неопытным пользователям сбивающими с толку или даже хаотичными.[нужна цитата ] Визуальные переходы обеспечивают контекст и помогают различать причинно-следственные связи элементов графического интерфейса. Вместо того, чтобы просто исчезнуть, окно может исчезнуть или заметно сжаться до панели задач. Выпадающее меню, которое было выбрано, может плавно выходить за пределы строки меню, что упрощает определение его происхождения и назначения.

Постепенные и естественные переходы могут быть[оригинальное исследование? ] особенно полезно для пожилых или слабовидящих пользователей, которые замечают изменения на экране медленнее и с меньшей четкостью. Например, неопытный пользователь может импульсивно щелкнуть меню, которое было случайно активировано, что приведет к потере работы. Небольшая задержка, необходимая для отображения визуального перехода, может дать пользователю достаточно времени, чтобы принять сознательное решение и избежать таких ошибок.

Фасады пользовательского интерфейса

Metisse реализует фасады пользовательского интерфейса, систему, которая предоставляет пользователям простые способы адаптации, перенастройки и рекомбинации существующих графических интерфейсов с помощью техники прямых манипуляций.[25]

Список оконных менеджеров композитинга

Список автономных менеджеров композитинга

  • xcompmgr - минимальная альтернатива Compiz
  • Комптон - исправленная ошибка вилка dcompmgr, которая является вилкой xcompmgr. (Не поддерживается с 2017 года.)
  • Picom -легкий композитор для X11. Это развилка Комптона.
  • Каир Compmgr (Cairo Composite Manager) - надстройка композитинга для существующих оконных менеджеров. Оно использует Каир, библиотека векторной графики, также используемая в GTK +.
  • Унаги Менеджер по композитингу - диспетчер композитинга, который можно использовать вместе с существующим диспетчером окон. Он использует XCB библиотека. (Не обслуживается с 2014 года.)
  • MCompositor - используется на телефонах MeeGo.

Операционные системы с композитными оконными менеджерами

Смотрите также

Рекомендации

  1. ^ а б «Диспетчер окон рабочего стола». Msdn2.microsoft.com. Получено 21 ноября 2008.
  2. ^ а б «Mac OS X 10.4 Tiger: стр. 13». Arstechnica.com. Получено 21 ноября 2008.
  3. ^ "Compiz.org :: Главная / Старт - Compiz". Compiz.org. Архивировано из оригинал 12 октября 2006 г.. Получено 21 ноября 2008.
  4. ^ "Чертеж:" Управление окнами компоновки (compiz / beryl)"". Blueprints.launchpad.net. Получено 21 ноября 2008.
  5. ^ «Несколько экземпляров Internet Explorer не перерисовывают экран правильно». Microsoft. 9 октября 2003 г.. Получено 17 декабря 2010.
  6. ^ "Часто задаваемые вопросы о поддержке фотоцентров". Получено 17 декабря 2010.
  7. ^ "Повреждение курсора мыши на xinerama". Canonical Ltd. 2 августа 2006 г.. Получено 17 декабря 2010.
  8. ^ «Архивировано из групп: microsoft.public.windowsxp.video». Bestofmedia Group. 18 июля 2004 г.. Получено 17 декабря 2010.
  9. ^ «Мустанг: приложения Swing зависают, а затем рисуются поврежденные». Oracle. 1 мая 2006 г. Архивировано с оригинал 26 июля 2011 г.. Получено 17 декабря 2010.
  10. ^ "Руководство по библиотекам Amiga RKM".
  11. ^ «Краткая история Mac OS X». Kernelthread.com. Архивировано из оригинал 22 января 2009 г.. Получено 21 ноября 2008.
  12. ^ «Sun и I.B.M. предлагают новый класс высокопроизводительных серверов».
  13. ^ «Microsoft Longhorn 3D UI - появляется дополнительная информация». ExtremeTech.
  14. ^ «История Microsoft Windows». Computerhope.com. Получено 21 ноября 2008.
  15. ^ «(Ре) Архитектура системы X Window». Keithp.com. Получено 21 ноября 2008.
  16. ^ "pkgsrc.se | Коллекция пакетов NetBSD". Pkgsrc.se. Получено 21 ноября 2008.
  17. ^ "Выпущен Xfce 4.2.0!". foo-projects.org. 16 января 2005 г.. Получено 25 февраля 2009.
  18. ^ «История версий - Настройки Hide and Seek». Hideseek.sourceforge.net. Получено 21 ноября 2008.
  19. ^ «Установка / запуск Compiz на GeForce2 MX / MX 400».[постоянная мертвая ссылка ]
  20. ^ "За что отвечает приложение compiz в ubuntu 12.04?".
  21. ^ "Пример утилиты альфа-прозрачности".
  22. ^ «Окна альфа-смешения (прозрачные)». CodeGuru.
  23. ^ «Плагины / виджет - Compiz Wiki». Compiz. Получено 26 декабря 2010.
  24. ^ "Высокотехнологичные бинокли".
  25. ^ «Metisse: фасады пользовательского интерфейса». Metisse. Получено 3 августа 2011.
  26. ^ 3Dwm - О компании, 23 января 2004 г., архивировано из оригинал 6 февраля 2004 г., получено 4 февраля 2010
  27. ^ 3Dwm - О проекте - FAQ - О проекте, 3 декабря 2003 г., архивировано из оригинал 24 февраля 2004 г., получено 4 февраля 2010
  28. ^ 3D оконный менеджер, заархивировано из оригинал 17 июля 2011 г., получено 16 декабря 2010
  29. ^ Йеггин, Рэй (31 марта 2005 г.), 3DWM: скриншот рабочего стола 3D, получено 16 декабря 2010

внешняя ссылка