Релиз графической библиотеки Clutter 1.8.0

После девяти месяцев разработки представлен выпуск новой стабильной ветки графической библиотеки 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, позволяющий отреагировать при перетаскивании элемента через указанную область или при отпускании элемента в этой области (при использовании механизма dragdrop);
  • Бэкенд для платформы Mac OS X переведен из разряда экспериментальных в категорию поддерживаемых и стабильных;
  • Переработан объект ClutterCairoTexture с целю упрощения процесса отрисовки с использованием библиотеки Cairo. Отныне не нужно вручную обрабатывать контекст cairo_t;
  • Расширен раздел полезных рецептов в документации, добавлены примерны готового кода для различных классов.

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.