развитие оконного интерфейса за последние двадцать лет было связано, в основном, с той или иной стилевой проработкой пиктограмм, тем или иным цветовым решением базовой палитры или «выразительностью» обоев. Но, похоже, грядут изменения: речь идет о концептуальном проекте Project Looking Glass трехмерного пользовательского интерфейса рабочего стола, предложенного корпорацией Sun Microsystems.

Вот уже два десятилетия на рабочих столах пользователей властвует «плоская иконопись»: графический интерфейс оформляется в виде двухмерного Рабочего стола, на который выкладываются плоские же окна приложений. Соответственно, развитие оконного интерфейса за это время было связано, в основном, с той или иной стилевой проработкой пиктограмм, тем или иным цветовым решением базовой палитры или «выразительностью» обоев. Но, похоже, грядут изменения: речь идет о концептуальном проекте Project Looking Glass трехмерного пользовательского интерфейса рабочего стола, предложенного корпорацией Sun Microsystems.

Концептуальность проекта состоит в том, что он не является «плановым» развитием ни одной из массовых оконных сред (CDE, KDE, GNOME), применяемых в персональных компьютерах, и реализуется заново на базе Java. Это принципиально отличает проект в плане переносимости. Кроме этого, с точки зрения пользователя, интерфейс работы с системными ресурсами, приложениями и задачами теперь становится «объемным», в то время как в упомянутых оконных средах он остается «плоским».

Строго говоря, Sun — лишь проводник оригинальных идей и спонсор разработки, а саму концепцию в ее нынешнем виде предложил японец Хидея Кавахара. «Толчком» к разработке послужил прискорбный факт. Кавахара разбил свой ноутбук на платформе Wintel и вынужден был купить более дешевый (но и более мощный) Linux-компьютер. Работа в среде Linux подвигла молодого человека к тому, чтобы перестроить представительский уровень графики рабочего стола. Благодаря открытости ОС Linux, Кавахара имел возможность заново собрать среду пользователя, настроив функционирование рабочего стола так, чтобы он выглядел не менее эффектно, чем какие-нибудь трехмерные «бродилки» или «стрелялки». В результате родился проект интерфейса пользователя, названный Looking Glass.

Первая европейская демонстрация этого интерфейса прошла во время выступления Джонатана Шварца, вице-президента Sun Microsystems, в декабре прошлого года в Берлине. И хотя в тот день корпорация демонстрировала много новинок, больше всего запомнился именно Looking Glass — тем более что Шварц объявил его рабочей средой на ближайшее десятилетие для распространяемых по каналам Sun решений, предназначенных как для Solaris, так и для Linux. Сама рабочая среда Looking Glass написана на Java и, видимо, будет переносима на большинство персональных платформ и все компьютеры Sun. Схема архитектурного решения Looking Glass достаточно проста (рис. 1).

Рис. 1.Архитектура Looking Glass

По сути дела традиционный, X-клиент приложения взаимодействует с чуть измененным, по сравнению с традиционным вариантом, X-сервером. Последний дополнен серверным модулем, названным X Client Capture. Функциональность этого модуля сводится к тому, чтобы перехватить графическое представление традиционного X-клиента и передать его на интерпретацию расширенным средствам трансформации плоского изображения в объемное. Этим преобразованием базовых виджетов традиционных двухмерных X-клиентов занимаются модули LookingGlass Display Server и библиотеки примитивов трехмерного интерфейса. Выводом на экран результатов в виде объемных объектов занимается 3D Window Manager, также написанный на Java, заменивший собой привычные «плоские» оконные менеджеры современных операционных систем. Display Server активно использует платформу OpenGL для трехмерных сцен. Несмотря на простоту, реализация даже на уровне бета-версий впечатляет — пользователь переходит от парадигмы плоского рабочего стола с роем «иконок» и постоянным «метанием» от одного почти заслоненного плоского окна приложения к другому ничуть не менее свободному и также плоскому окну.

Что же предлагает Project Looking Glass? Рабочее пространство в Looking Glass — именно пространство, составленное из нескольких подпространств. Каждое пространство имеет псевдообъемные обои, полупрозрачную «заваленную» наружу от пользователя панель задач и позволяет перемещаться вправо и влево относительно неподвижной в подпространстве панели задач (рис. 2).

Рис. 2. Находясь в промежуточном положении, пользователь может работать сразу с двумя рабочими столами

При перемещении внутри одного подпространства включается визуальный эффект «перспективы», а панель задач «передвигается» относительно обоев, имитируя эффект пространственной разнесенности панели и обоев, которые теперь уже превращаются в подоконник и вид-за-окном. Если пользователь «зайдет» слишком далеко, то будет перемещаться из одного подпространства в соседнее подпространство (из одного сектора пространства в соседний сектор). В принципе, в традиционной оконной системе (например, GNOME или CDE) пользователь также имеет возможность переходить от одного рабочего стола к другому, но делается это дискретно. В LookingGlass это выполняется непрерывно, и возможны ситуации, когда пользователь может занять положение между двумя рабочими подпространствами, присутствуя одновременно в половинках обоих подпространств. Для окончательного вывода пользователя из двухмерного плена, «обои» обычно выполняются в виде стыкующихся частей круговой панорамы.

Как видно из архитектурной схемы, собственно приложения — это обычные X-клиенты и приложения на их основе (текстовый редактор, Web-браузер, навигатор файловой системы и т.п.). Что же нового привносит в их представление третье измерение? Теперь каждое приложение, даже элементарный X-терминал, выводится на рабочее подпространство в объемном окне, которое можно, как и раньше, передвигать по подпространству и «схлопывать», но можно распахивать как «ставню» наружу (рис. 3).

Рис.3. Приложения допускают разворот своих окон вокруг вертикальной оси
И при этом приложение, если оно активно, будет иметь возможность выводить в такое «полузакрытое» и занимающее мало места «окно» («ставню») любую графическую информацию: масштабирование и пространственную деформацию берут на себя библиотечные модули и оконный менеджер Project Looking Glass. Для того чтобы пользователь знал, что за приложение он оставил работать на той или иной «ставне», торцы этих «ставен» несут на себе наименование приложения. А еще традиционная пиктограмма перестала быть пиктограммой — она обрела «внутреннее содержание», и теперь в ней «живет» приложение.

В принципе, и икону и «Ставню» можно повернуть на любой угол относительно вертикальной оси, поэтому естественно, что «тыльная» часть такого трехмерного окна также не может оставаться не задействованной. Для «тыла» предусмотрено «наклеивание горчичников», на которые можно наносить любую текстовую информацию (рис. 4).

Рис. 4. «Желтый горчичник» на обратной стороне окна средство хранения метаданных
Основное назначение тыла — настройка работы приложений путем вызова многочисленных меню и подменю настроек. И напоследок, чтобы и KDE особо не «задавался» — ставни и активные окна могут менять свою «непрозрачность», чтобы было видно, что там «за окном». Очень удобно совместное использование настроек тыла полупрозрачности окна — пользователь не теряет «из виду» и само приложение (пусть и в зеркальном отображении), и ход исполнения настроек.

Итак, пользователь теперь контролирует все приложения в своем трехмерном рабочем подпространстве независимо от того, «схлопнуто» оно в «ставню» или даже вообще в «иконку» (рис. 5).

Рис. 5. Looking Glass приоткрывает ставни в трехмерное рабочее пространство
Во время презентации в Берлине демонстрировалось очень непростое поведение «ставень»: несколько приложений, уже переведенных в «ставни», все разом могут быть повернуты на один угол. И не только относительно вертикальной оси, но и относительно любой горизонтальной, а также относительно комбинации осей. Может быть, стоит ожидать в Looking Glass расширения подпространств еще и на пол и на потолок?

На сегодняшний день платформы для инсталляции Looking Glass — это Linux (RedHat 9 или SuSE Linux 8.1) и Solaris86 с установленной средой Sun Java Desktop System Release1 или Release2 и OpenGL в версии не ниже 1.2. А требования к компьютерам сегодняшней реализации Looking Glass совсем просты: процессоры архитектуры x86 с тактовой частотой не ниже 1,7 ГГц, оперативная память емкостью 512 Мбайт, рекомендованное свободное место на диске в 350 Мбайт и графическая подсистема с 24-разрядной глубиной цветности (например, на базе nVIDIA GeForce 2 или ATI Radeon 7500).

Владимир Краюшкин (vkr@royint.com) — сотрудник компании Roy International Consultancy (Москва).