Доступна новая стабильная ветка графической библиотеки Clutter - 1.12.0, API и ABI которой обратно совместимы с прошлыми версиями библиотеки. Библиотека может работать поверх OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL и Pango. Имеются биндинги для языков Perl, Python, C#, C++, Vala и Ruby. Исходные тексты распространяются в рамках лицензии LGPLv 2.1.
Clutter активно используется для обеспечения работы пользовательского интерфейса в проекте GNOME 3. Функции библиотеки Clutter ориентированы на активное использование анимации и визуальных эффектов, что позволяет применять при создании обычных GUI приложений методы, используемые при разработке игр. При этом сама библиотека напоминает игровой движок, в котором максимальное число операций выносится на плечи GPU. Одним из основных преимуществ Clutter является то, что для создания сложного интерфейса пользователя требуется написание минимума кода.
Из новшеств Clutter 1.12.0 можно отметить:
- Поддержка распознавания типовых управляющих мультитач жестов (панорамирование, вращение и масштабирование) в классах ClutterPanAction, ClutterZoomAction и ClutterRotateAction. Обработка новых жестов может быть добавлена при помощи класса ClutterGestureAction;
- Добавлен базовый класс ClutterScrollActor для организации области просмотра с поддержки прокрутки содержимого, по размеру превосходящего определённую область;
- Для класса ClutterTransition добавлены субклассы ClutterTransitionGroup и ClutterKeyframeTransition, позволяющие организовать группировку и переход между ключевыми кадрами в соответствии с API анимации в ClutterActor;
- В базовый класс ClutterActor добавлен новый API для организации трансформации (масштабирование, вращение, преобразование и т.п.), отталкиваясь от осевой точки. Композиции (actor) могут быть трансформированы на основе 3D-матрицы, что позволяет избежать дополнительной декомпозиции элементов, распространить преобразование на дочерние элементы и использовать при этом анимацию;
- Добавлен класс ClutterGridLayout с реализацией расширенных средств управления холстом на основе размещения actor-композиций с использованием масштабной сетки, позволяющей автоматически расширять элементы в вертикальном и горизонтальном направлении;
- Объявлены устаревшими классы ClutterCairoTexture (заменён на ClutterCanvas), ClutterTexture (заменён на ClutterImage), ClutterMedia (заменён на clutter-gst API), ClutterAnimation, ClutterAnimator, ClutterState (следует использовать анимационный API); прекращена поддержка создания анимации через ClutterLayoutManager; прекращена поддержка сигналов раскрашивания и получения цвета в ClutterActor.
В настоящий момент доступны такие интеграционные модули, как:
- Clutter-GTK - для интеграции с GObject и предоставления API в стиле GTK+;
- Clutter-GStreamer - для отображения видеопотоков в виде элементов холста Clutter;
- Clutter-Box2D - для симулирования физических процессов, таких как гравитация, инерция или реалистичные столкновения;
- Clutter-MozEmbed и Clutter-WebKit - для рендеринга web-страниц через движок Mozilla Gecko или WebKit;
- Clutter-Qt для интеграции возможностей Clutter в Qt приложения;
|