После девяти месяцев разработки представлен выпуск новой стабильной ветки графической библиотеки Clutter - 1.8.0, API и ABI которой обратно совместимы с прошлыми версиями библиотеки. Библиотека может работать поверх OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL и Pango. Имеются биндинги для языков Perl, Python, C#, C++, Vala и Ruby. Исходные тексты распространяются в рамках лицензии LGPLv 2.1.
Clutter активно используется для обеспечения работы пользовательского интерфейса в проектах MeeGo и GNOME 3. Функции библиотеки Clutter ориентированы на активное использование анимации и визуальных эффектов, что позволяет применять при создании обычных GUI приложений методы, используемые при разработке игр. При этом сама библиотека напоминает игровой движок, в котором максимальное число операций выносится на плечи GPU. Одним из основных преимуществ Clutter является то, что для создания сложного интерфейса пользователя требуется написание минимума кода.
В настоящий момент доступны такие интеграционные модули, как:
- Clutter-GTK - для интеграции с GObject и предоставления API в стиле GTK+;
- Clutter-GStreamer - для отображения видеопотоков в виде элементов холста Clutter;
- Clutter-Box2D - для симулирования физических процессов, таких как гравитация, инерция или реалистичные столкновения;
- Clutter-MozEmbed и Clutter-WebKit - для рендеринга web-страниц через движок Mozilla Gecko или WebKit;
- Clutter-Qt для интеграции возможностей Clutter в Qt приложения;
Ключевые новшества Clutter 1.8.0:
Из дерева исходных текстов удалена низкоуровневая библиотека COGL, используемая для абстрагирования доступа к OpenGL. Программный интерфейс для обращения к OpenGL теперь будет развиваться в отдельном репозитории и распространяться в виде независимой библиотеки, нацеленной на низкоуровневое программирование для GPU. Clutter будет использовать данную библиотеку как внешнюю зависимость; Реализованы новые базовые классы ClutterGestureAction и ClutterSwipeAction. ClutterGestureAction предназначен для организации выполнения действий при распознавании управляющих жестов, сам код распознавания жестов должен быть написан отдельно. ClutterSwipeAction является дочерним классом ClutterGestureAction и содержит пример реализации распознавания жеста "перелистывание страниц". В общем виде новый GestureAction API является первым шагом к обеспечению готовности Clutter для поддержки мультитач, которая пока не реализована; Объект ClutterState, определяющий анимированные трансформации между несколькими состояниями, теперь можно связывать с сигналами из ClutterScript. В процессе определения сцены при помощи ClutterScript стало возможным непосредственно связать состояние внутри объекта ClutterState с сигналом внешнего объекта, без создания дополнительного обработчика сигнала; Добавлен класс ClutterDropAction, позволяющий отреагировать при перетаскивании элемента через указанную область или при отпускании элемента в этой области (при использовании механизма drag&drop); Бэкенд для платформы Mac OS X переведен из разряда экспериментальных в категорию поддерживаемых и стабильных; Переработан объект ClutterCairoTexture с целю упрощения процесса отрисовки с использованием библиотеки Cairo. Отныне не нужно вручную обрабатывать контекст cairo_t; Расширен раздел полезных рецептов в документации, добавлены примерны готового кода для различных классов.