LXF123:Что за штука
|
|
|
Что за штука… Clutter
- Боб Мосс устраняет путаницу и объясняет, как почистить графический код.
- Я и так знаю, что такое clutter: это по-английски беспорядок. У меня дома такого полно.
Похоже, вам нужна генеральная уборка. Но наш Clutter – это новая открытая графическая библиотека для мобильных и встраиваемых устройств, например, нетбуков.
- Ой, а зачем им графическая библиотека?
Нетбуки и смартфоны – это, как правило, устройства с низким энергопотреблением и интегрированной графикой. Любое усложнение «на экране» вызывает проблемы в виде чрезмерного перегрева и сокращения времени работы от батареи, что едва ли приемлемо. Clutter – графическая библиотека, созданная для преодоления этих трудностей.
- А не выйдет ли так, что проект, нацеленный на маломощные устройства, первым делом перегрузит процессор?
В данном случае – не думаю. Хотя, что греха таить, порой и такое случается. OpenGL – и его облегченный вариант OpenGL ES – очень сложны в кодировании, даже без учета проблем энергопотребления. Clutter облегчает процесс, предлагая библиотеку, с которой можно просто скомпоноваться.
- А в чем выгода от Clutter?
Одно из ключевых преимуществ – снижение порога вхождения для программистов OpenGL. Разработчик может вызывать готовые подпрограммы из библиотеки, передавая им свои данные как параметры. Более опытные программисты смогут работать быстрее: им больше не нужно маяться с устаревшим кодом, всякий раз зазаново изобретая велосипед. Пусть лучше программист сосредоточится на разработке новых функций.
- Что же, программистам повезло — а мне всё это зачем?
Вы получите легкий и мощный интерфейс с функциональностью, заточенной под особенности мобильных устройств. Например, проект Moblin компании Intel тесно связан с технологией Clutter. Компания надеется, что ее платформа станет лучшей по части использования памяти, функциональности и внешнего вида, а это, в свою очередь, повлечет ее принятие как стандарта для всех нет- буков на базе Intel Atom. Разработка вариантов всячески поощряется – ведь ПО Moblin будет совместимо с полученными результатами, а это способствует распространению проекта.
- Приятно слышать. В каких проектах используется Clutter?
Как мы уже упоминали, Clutter широко используется в проекте Moblin. Это не удивительно, ведь они оба нацелены на одну платформу: нетбуки на базе процессоров Atom. Moblin претендует на роль стандартной операционной платформы, а Clutter будет служить стандартной графической платформой для тех же устройств. Проекты обречены на сотрудничество.
- Если Clutter вовлечен в проект Intel Atom, то в его развитии заинтересована компания Intel?
Разумеется! Да так, что приобрела OpenedHand – фирму, занимающуюся разработкой и развитием Clutter, с целью упростить будущее развитие и укрепить позиции Moblin как стандарта на рынке нетбуков.
- Не станет ли тогда Clutter менее открытым?
Тут есть опасность замкнуться на процессоры Intel. Clutter лицензирован под GNU LGPL, поэтому использовать библиотеку можможно на тех же условиях, которые были до приобретения. Разница в том, что теперь за Clutter стоит кадровая и финансовая поддержка Intel, позволяя надеяться на появление крупных новых функций в ближайшие год-два. По условиям GNU LGPL ничто не мешает портировать Clutter на другие платформы – например, ARM. Впрочем, Clutter все-таки оптимизирован именно под процессоры Atom.
- Хм... а вот язык программирования, полагаю, будет единственный.
Clutter может работать отнюдь не только с C-кодом: его можно использовать в проектах Perl, Python, C++, Vala и даже Mono. Есть сообщения об использовании Clutter в MonoDevelop и Eclipse – то есть для разработки или портирования приложений на базе Clutter можно выбирать не только языки программирования, но и среды разработки.
- А мои любимые программы — их можно будет портировать?
Библиотека Clutter совместима с графическим движком Cairo, а для воспроизведения медиа используется GStreamer. Clutter легко интегрируется в рабочую среду Gnome, что вполне объяснимо: интерфейс Moblin построен на Gnome Mobile UI. Учитывая, что Clutter существует в вариантах для Windows и Mac и может работать с локальной реализацией OpenGL, портировать код на другую ОС будет относительно просто, разобравшись с мелкими платформенно-специфичными штрихами.
- Значит, ограничений нет вообще? Хватит болтовни, давайте приложения!
Не спешите. Есть несколько принципиальных понятий, которые разработчик должен усвоить до начала работы с Clutter. Фон интерфейса, который вы создаете, называют «сценой», что аналогично «холсту» в других графических библиотеках типа DirectX или OpenGL. Любой объект, добавляемый на «сцену», называется «актером». Это может быть надпись, текстура и пр.; всё это сохраняется в контейнерах. В качестве «актеров» можно использовать объекты из библиотеки GTK, например, поля для ввода текста. После добавления элементов их можно масштабировать, преобразовывать, перемещать, использовать так называемые события для описания реакции «актеров» на внешние изменения или действия прочих объектов.
- Как-то сложно всё…
По сравнению с непосредственным взаимодействием с OpenGL Clutter – великое облегчение. Программисты избавляются от работы с матрицами и ручного кодирования, необходимых для расчета преобразования или перемещения объектов. Clutter берет рутинную работу на себя, предоставляя библиотеки внутри API для выполнения наиболее распространенных задач. Просто происходит вызов функций API и передача им соответствующих значений в качестве параметров.
- Используется ли Clutter где-нибудь, кроме Moblin?
Clutter также используется в ремиксах для нетбуков. Если вы когда-либо видели Ubuntu Netbook Remix или другие «нетбучные» дистрибутивы, вроде Easy Peasy и Eeebuntu, то, вероятно, уже имели дело с интерфейсами на основе Clutter!
- Интересно. Если Clutter использует OpenGL, почему он применяется только для интерфейсов?
Сейчас это наиболее распространенная область применения Clutter: библиотека тесно интегрирована с Gnome. Но Clutter – очень мощный инструмент, и мы ожидаем его широкого распространения. Например, он уже числится в перечне зависимостей пакета gnome-games, входящего в среду Gnome по умолчанию: новая библиотека упрощает работу с двумерной графикой. Возможно создание и 3D-сцен, поэтому вероятно появление 3D-игр на основе Clutter в не очень отдаленном будущем.
- Секундочку. Как тогда Clutter соотносится с Moblin, если он не только для создания интерфейса?
По сути, разработчики Moblin применили Clutter для создания подходящего интегрированного интерфейса на основе существующего Gnome Mobile UI.
- Как-как?
Сперва учтите, что в проекте Moblin используется рабочая среда приложений Hildon. Это набор расширений GTK для Gnome Mobile UI, нацеленный на усовершенствование функциональности мобильных устройств. Система довольно развитая: она включает небольшой рабочий стол, панель управления и средство запуска приложений. Проект Hildon использовался в мобильных устройствах Nokia, работавших на ОС Maemo; кроме того, он включается в Ubuntu Mobile Edition по умолчанию.
- И как же уживаются Clutter и Hildon внутри Moblin?
Hildon используется в проекте Moblin как «каркасный» слой, обеспечивающий функциональность мобильного устройства (так же, как он использовался в ОС Maemo). Это стабильная и необременительная основа для развития интерфейса рабочего стола. А уже на ней программисты Moblin с помощью Clutter создали более утонченный интерфейс, приближенный к пользователю. Такая конфигурация позволяет полнее использовать ресурсы мобильного устройства.
- Лихо закручено! Где можно узнать подробности о Clutter?
Домашняя страница проекта находится по адресу http://www.clutter-project.org. Можно посетить сайт проекта OpenedHand (http://o-hand.com). Превосходное руководство по Clutter находится здесь: http://bit.ly/gvRFS. Узнать больше о проектах Moblin и Hildon можно по адресам http://moblin.org и http://live.gnome.org/Hildo, соответственно. LXF