Xinerama - это расширение X Window System, которое позволяет приложениям X и оконным менеджерам использовать два или более физических дисплея как один большой виртуальный дисплей.
Разработанное под названием PanoramiX Мэдлин Т. Асмус из подразделения Unix X Server Engineering Group 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 предоставляет клиентам информацию о макете видовых экранов в едином рабочем пространстве. Его информация, касающаяся смещения и размера, позволяет клиентам принимать разумные решения о размещении окон, максимизации окна и других событиях взаимодействия с пользователем.
Архитектура клиент / сервер X-сервера позволяет серверу предоставлять клиенту информацию Xinerama независимо от того, активна ли инфраструктура Xinerama. Twinview RandR и NVidia использует эту функцию для предоставления оконным менеджерам и клиентам информации о макете вывода относительно фреймбуфера.
Xinerama требует, чтобы все физические экраны имели одинаковую глубину бит. Например, экран 8-бит нельзя комбинировать с экраном 16-бит.
В некоторых реализациях OpenGL прямой рендеринг работает только на одном экране. Окна, которые должны отображать трехмерную графику на других экранах, обычно выглядят черными, что чаще всего встречается с трехмерными хранителями экрана. Реализация Solaris SPARC OpenGL и проприетарные драйверы Linux от ATI и nVidia поддерживают аппаратное ускорение рендеринга всех экранов в режиме Xinerama.
Физические экраны не могут быть добавлены или удалены динамически, и нет способа изменить разрешение экрана. Это особенно сложно для пользователей мобильных компьютеров, которые могут использовать внешний физический дисплей в дополнение к встроенному экрану компьютера, но только в определенных местах. В этих случаях рекомендуется использовать метод одного GPU от RandR, ATI или nVidia. Отсутствие поддержки Xinerama для добавления или удаления экранов вызывает несколько проблем:
Эти проблемы связаны с реализацией Xinerama, а не с ее дизайном, и могут быть исправлены при дальнейшей разработке.
Некоторые оконные менеджеры и среды рабочего стола имеют ограниченные осведомленность об отдельных физических экранах в Xinerama, так что рабочий стол просто растягивается по физическим экранам, а не размещается как один большой рабочий стол. Диспетчер окон может разместить новое окно на неожиданном экране, что может сбивать с толку и раздражать. Тем не менее, Xinerama предлагает преимущество, заключающееся в том, что окна можно перемещать между экранами, в отличие от X.
Физические дисплеи не обязательно должны иметь одинаковое разрешение, а виртуальная область отображения не обязательно прямоугольной формы, если физические дисплеи компонентов не одинакового размера. Некоторые оконные менеджеры предполагают прямоугольную область отображения и добиваются этого, создавая лишнее «мертвое пространство» по краям дисплея. Диспетчеру окон необходимо знать Xinerama, чтобы не помещать новые окна в это мертвое пространство.
Асмус, Мэдлин Т. (декабрь 1995 г.) «Расширение PanoramiX» РЕСУРС X 16: Практический журнал X Window Система. стр. 59–73 ISBN 1-56592-166-6.