Разработчики проекта GNOME объявили о выпуске новой стабильной ветки графической библиотеки Clutter - 1.4.0, API и ABI которой обратно совместимы с прошлыми версиями библиотеки.
Библиотека работает поверх OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL и Pango, имеются биндинги для языков Perl, Python, C#, C++, Vala и Ruby. Исходные тексты распространяются в рамках лицензии LGPLv 2.1. Библиотека Clutter ориентирована на активное использование анимации и визуальных эффектов, что позволяет применять при создании обычных GUI приложений методы, используемые при разработке игр. При этом сама библиотека напоминает игровой движок, в котором максимальное число операций выносится на плечи GPU. Одним из основных преимуществ Clutter является то, что для создания сложного интерфейса пользователя требуется написание минимума кода.
Clutter активно используется для обеспечения работы пользовательского интерфейса в проекте Moblin/MeeGo, в недалеком будущем рабочая оболочка GNOME 3.0 также будет основана на использовании Clutter интерфейса к GTK+. Кроме Clutter-GTK, в настоящий момент доступны такие интеграционные модули, как Clutter-GStreamer для отображения видео потоков в виде элементов холста Clutter; Clutter-Box2D для симулирования физических процессов, таких как гравитация, инерция или реалистичные столкновения; Clutter-MozEmbed и Clutter-WebKit для рендеринга web-страниц через движок Mozilla Gecko или WebKit; Clutter-Qt для интеграции возможностей Clutter в Qt приложения.
Ключевые новшества Clutter 1.4.0:
- Реализованы новые базовые классы: ClutterAction, ClutterConstraint и ClutterEffect, предназначенные для создания объектов, которые изменяют способ реакции на события, задают ограничения размера/позиции и влияют на способ прорисовки. Clutter 1.4 поставляется с набором стандартных Action-объектов (например, ClutterDragAction), ограничений (например, ClutterAlignConstraint) и эффектов (например, ClutterBlurEffect);
- В COGL, низкоуровневой библиотеке для абстрагирования доступа к OpenGL, переписана реализация класса CoglMaterial, который теперь при возможности задействует при работе GPU;
- Добавлен новый объект ClutterState, определяющий анимированные трансформации между несколькими состояниями;
- В состав дерева исходных текстов включена библиотека Cally (Clutter Accessibility Implementation Library), предоставляющая функции ATK-интерфейсов (GNOME Accessibility Toolkit) для упрощения адаптации приложений для людей с ограниченными возможностями;
- Проведена работа по увеличению производительности сборки визуальных объектов, перерисовки и их размещения на холсте (layout);
- Улучшена работа бэкендов:
- X11: для преобразования аппаратных скан-кодов клавиш в символы задействован модуль XKB. Для инициализации настроек бэкенда задействован протокол XSETTINGS;
- Quartz: Устранены проблемы со сборкой;
- EGL: Методы работы через framebuffer и X11 объединены в единый бэкенд;
- В качестве обязательных зависимостей заявлены: GLib 2.18.0, Cairo 1.4, Pango 1.20, Atk 1.7, OpenGL 1.2, реализации GLX, WGL, Quartz или EGL. Из опциональных зависимостей отмечены GDK-Pixbuf 2.0 и JSON-GLib 0.10.
|