Композитный менеджер окон
Композитный менеджер окон — менеджер окон, использующий возможности окружения (например, опциональной функции Composite
X11-сервера или средств Windows Aero) по задействованию аппаратного ускорения для отображения прозрачности, отрисовки теней, отображения текстур, трёхмерных эффектов, анимации, экранных луп.
В отличие от ранних оконных менеджеров, которые делали каждую индивидуальную программу ответственной за предоставление своего окна непосредственно в кадровом буфере, композитный менеджер обеспечивает приложениям вне экрана буфер памяти окна и композитов окна в изображение, представляющее экран и пишет результат в кадровом буфере.
Композитный менеджер может выполнять дополнительную обработку буфера окна, применяя 2D- и 3D-анимационные эффекты, такие как альфа-смешивание, выцветание, масштабирование, поворот, копирование, изгиб и искривление, размытость. Также возможен перевод окна в один из нескольких дисплеев и виртуальных рабочих столов. Данная технология позволяет в режиме реального времени просчитывать такие эффекты как падающие тени, живые предварительные просмотры окон и другие сложные эффекты.
История
[править | править код]Одной из первых систем с композитными функциями отображения окон была Commodore Amiga, выпущенная в 1985 году. Приложения AmigaOS запрашивают область памяти за пределами текущей области отображения для использования в качестве растра. Затем Intuition выполняет отрисовку аппаратным блиттером Amiga и строит композицию растровых изображений этих приложений - вместе с кнопками, ползунками и всеми другими (любыми) элементами интерфейса - в экранной памяти, не требуя от запрашивавших приложений отдельной перерисовки каких-либо частей их интерфейсов.[1]
24 марта 2001 года вышла Mac OS X 10.0 в которой впервые функции 3D-композиции и композитных эффектов были реализованы программно и обеспечивались экранным менеджером Quartz Compositor. Однако, с появлением в Mac OS X 10.2 технологии Quartz Extreme поддержка композитных изображений возвращается обратно на специализированное графическое оборудование и видеокарты.[2]
В 2003 году компания Sun Microsystems представила подсистему Project Looking Glass служащую для отрисовки трёхмерной графики и работающую поверх библиотеки Swing. Впервые она была показан на выставке LinuxWorld Expo 2003. Хотя Apple пригрозили подать в суд на Sun за нарушение прав их интеллектуальной собственности, ряд свободных оконных менеджеров заимствовали часть функционала из этого проекта. К 2006 году разработка компанией Sun была прекращена, т.к. интересы их бизнеса сместились от рабочих станций UNIX с графическим интерфейсом пользователя к продаже корпоративных мейнфреймов.[3]
Среди первых в полной мере использующих композитные функции X11-сервера были менеджеры Beryl и Compiz, более поздние — Enlightenment, Mutter, также композитными стали менеджеры KWin и Xfwm.
Разработка композитного оконного менеджера Desktop Window Manager для Microsoft Windows началась в 2003 году, но из-за проблем возникших в ходе разработки Project Longhorn, он увидел свет только в январе 2007 года в составе Windows Vista.
В потомках классической AmigaOS — AROS (1995 год, Wanderer), MorphOS (2002 год, Ambient), AmigaOS 4 (2007 год, Amiga Workbench), также реализованы возможности плоского рендеринга, включающего в себя композитные слои, альфа-канал, градиенты в высоком разрешении, с поддержкой множества рабочих столов («экранов» в терминологии AmigaOS), с полным или частичным перекрытием рабочих столов.
Примечания
[править | править код]- ↑ Amiga RKM Libraries Manual . Дата обращения: 1 января 2021. Архивировано 22 февраля 2014 года.
- ↑ A Brief History of Mac OS X . Kernelthread.com. Дата обращения: 21 ноября 2008. Архивировано 22 января 2009 года.
- ↑ Sun and I.B.M. to Offer New Class of High-End Servers . Дата обращения: 1 января 2021. Архивировано 26 января 2021 года.
Литература
[править | править код]- Сергей Яремчук. Композитные оконные менеджеры // 200 лучших программ для Linux. — СПб.: Питер, 2012. — С. 241—242. — 290 с. — ISBN 9785388000682.
- Alex Crits-Christoph. Innovative Interfaces with Clutter (англ.). Linux Journal (10 января 2009). Дата обращения: 28 декабря 2012. Архивировано 7 января 2013 года.