Введение

Xinerama — это расширение для X Window System, которое позволяет приложениям и менеджерам окон использовать два или более физических дисплея как единый большой виртуальный дисплей. Разработанное под названием PanoramiX Мэдлин Т. Асмус из группы разработки Unix X Server компании Digital Equipment Corporation, программное обеспечение было передано в The Open Group для выпуска X11 Release 6.4 (X11R6.4) и переименовано в Xinerama. Впоследствии оно было включено в выпуск XFree86 4.0 в 1998 году и выпуск Solaris 7 11/99. По словам руководителя проекта X Server Роба Лембри, название было вдохновлено технологией широкоэкранного кинотеатра Cinerama. «Мы были разочарованы тем, что у нас были мощные машины Alpha с несколькими дисплеями, и мы не могли перемещать приложения между ними. Разработка была вызвана скорее разочарованием, чем стремлением к конкурентному преимуществу». Преимущества Xinerama включают возможность разворачивать окна только до размеров активного физического дисплея и отображать новые всплывающие окна на активном физическом дисплее.

Общая теория работы

Когда Xinerama включена в X-сервере, несколько экранов X можно объединить в единое рабочее пространство. Эта объединенная рабочая область позволяет перемещать окна между экранами X.

Расширение XINERAMA

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

Использование в средах, не относящихся к XINERAMA

Архитектура клиент-сервер X-сервера позволяет серверу предоставлять клиенту информацию Xinerama, независимо от того, активна ли инфраструктура Xinerama. RandR и технология TwinView от NVIDIA используют эту возможность для предоставления менеджерам окон и клиентам информации о расположении выходов относительно буфера кадров.

Общая глубина цвета

Xinerama требует, чтобы все физические экраны имели одинаковую разрядность. Например, экран с 8-битной глубиной цвета нельзя объединять с экраном с 16-битной глубиной цвета.

Рендаринг на аппаратном уровне

В некоторых реализациях прямой рендеринг OpenGL работает только на одном экране. Окна, предназначенные для отображения 3D-графики на других экранах, часто оказываются черными, что особенно часто встречается в случае 3D-заставок. Реализация OpenGL для Solaris SPARC, а также проприетарные драйверы ATI и nVidia для Linux поддерживают аппаратное ускорение рендеринга для всех экранов в режиме Xinerama.

Статическая конфигурация

Физические экраны нельзя динамически добавлять или удалять, и изменить разрешение экрана невозможно. Это особенно неудобно для пользователей мобильных компьютеров, которые могут использовать внешний физический дисплей в дополнение к встроенному экрану, но только в определенных местах. В таких случаях рекомендуется использовать RandR или одно-GPU методы от ATI или nVidia. Отсутствие поддержки добавления и удаления экранов в Xinerama приводит к ряду проблем:

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

Поддержка менеджера окон

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

Мертвое пространство

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

Ресурс

Asmus, Madeline T. (декабрь 1995) "Расширение PanoramiX" THE X RESOURCE 16: Практический журнал системы X Window. С. 59–73.