(К презентации)
Слайд 2-6:
За последние 20 лет развитие оконного
интерфейса было связано, в основном, со
стилевой проработкой пиктограмм, цветовым решением, прозрачности, теням от
иконок и т.п. В свою очередь проект Looking Glass
предлагает пользователю возможности трёхмерного
рабочего пространства. Проект, как говорит его создатель Хидея
Хакавара, не является чем-то революционным, а
является эволюционным решением.
В данном проекте упор сделан на
реализацию объёмного пользовательского пространства с программами, привычными пользователю в 2D средах, таких
как KDE, GNOME, CDE и
т.п. Таким образом, все существующие «плоские» программы приобретают объёмное
представление. Теперь человек может работать с программами в привычном
«объёмном» мире: вращать окна, как мы переворачиваем листы простых листов на
своём письменном столе, писать на обратной стороне заметки, производить
настройки программ на её тыльной стороне и незамедлительно видеть их результаты.
Также в новой 3D среде реализован плавный переход с одного рабочего
стола на другой, т.е. он происходит не дискретно как в KDE или GNOME, а плавно перетекает из одного стола в другой. При
этом обои рабочего стола представлены в виде стыкующихся частей круговой
панорамы.
Слайд 7:
Схема архитектурного решения
Looking Glass представлена на слайде. Тут X-клиент взаимодействует с немного изменённым X-сервером. Модуль захвата X-приложения перехватывает графическое представление
традиционного Х-клиента и передаёт его на интерпретацию в объёмное представление.
Этой интерпретацией занимается Display
Server и библиотеки 3D примитивов.
Выводом на экран объёмных объектов занимается 3D менеджер окон,
также написанный на Java, заменивший собой «плоские»
оконные менеджеры . Display Server использует
библиотеку OpenGL для отображения трёхмерных сцен.
Приложения тут всё также простые X-клиенты, но
каждое приложение получает объёмное представление и получает возможность сворачиваться
в ставню. На одном ребре которого отображается его
название.
Слайд 8:
На
данном слайде представлена более подробная архитектура Looking Glass.
Здесь более чётко отображена роль библиотеки OpenGL и событий
вызывающих действия среды.
Слайд 9:
На
данном слайде описана обработка событий поступающих от внешних устройств и
процессов, происходящих в системе и реакция среды на эти события.
Слайд 10:
На
данном сладе представлена схема, по которой производится подсчёт 3D координат,
на которые указывает пользователь в 2D
приложении. Для того,
чтобы однозначно определить, в какой области 2D приложения произошло
пользовательское событие.
Слайд 11:
На данном слайде представлен пример модели 3D сцены, на которой виджеты отображаются с помощью классов реализованных в проекте Looking Glass. На основе Java3D были дописаны классы для отображения объёмных окон (Frame3D), включающий классы отображения кнопок полей ввода (Component3D) и .т.п.
Слайд 12:
На
данном слайде представлена иерархия классов, реализованных в проекте Looking Glass, и
их связи с классами Java3D, на основе которых они были написаны.
В заключение хочу сказать, так как данный проект
реализован на java, то он может быть перенесён
на любую архитектуру, и практически любую ОС.