Новый стабильный релиз EFL (Enlightenment Foundation Library)

Проект Enlightenment представил новую порцию стабильных релизов библиотек, составляющих набор EFL (Enlightenment Foundation Library). Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment 17, в настоящее время компоненты EFL обретают популярность для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, продолжающей развитие MeeGo, используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos.

Новые компоненты EFL, переведённые в разряд стабильных:

  • Eio 1.0.0 - абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;
  • Emotion 1.0.0 - библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas;
  • Ethumb 1.0.0 - библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом;
  • Elementary 1.0.0 - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).

Обновление компонентов, ранее входящих в состав EFL:

  • Eina 1.2.0 - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).

    В новой версии добавлен API для управления семафорами, реализован итератор Eina_Xattr, добавлены новые типы данных eina_inarray и eina_value, ускорена работа Eina_Rbtree;
  • Eet 1.6.0 - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.

    В новой версии проведены дополнительные оптимизации потребления памяти и производительности, добавлена поддержка GNUTLS 3.x, реализован API EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY, размер eet_connection увеличен до 1 Мб;
  • Evas 1.2.0 - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.

    В новой версии реализовано около 40 изменений, среди которых: движок Shm для отрисовки с использованием Wayland, оптимизация производительности, прекращение поддержки движка Software_SDL, поддержка двойной буферизации в движке buffer, новые API для управления флагами событий и для манипулирования объектами фреймов, бэкенд evasgl для ПО, использующего Mesa;
  • Ecore 1.2.0 - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.

    В новой версии добавлено около 100 новых функций, добавлены компоненты для работы с Wayland, проведена оптимизация потребления памяти, улучшена поддержка платформ Windows и Mac OS X;
  • Embryo 1.2.0 - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.

    В новой версии улучшена поддержка платформы Windows, добавлена поддержка exotic, реализован набор математических функций;
  • Edje 1.2.0 - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменен).

    В новой версии добавлены vkbd-типы HEX, TERMINAL, PASSOWORD, около реализовано 30 новых функций, увеличена скорость загрузки Edje-файлов, улучены средства для интеграции скриптов на языке Lua;
  • Efreet 1.2.0 - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.

    В новой версии отмечено несколько незначительных исправлений;
  • E_Dbus 1.2.0 - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.

    В новой версии проведена работа над ошибками;
  • Eeze 1.2.0 - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.

    В новой версии добавлена поддержка определения bluetooth-устройств, реализован API для работы с сетевыми устройствами;
  • Expedite 1.2.0 - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.

    В новой версии удалена поддержка движков SDL 16bpp и Software_SDL;
  • Evil 1.1.0 - реализация уровня совместимости для работы на платформе Windows.

    Среди улучшений незначительное расширение API, например, добавлено POSIX-совместимое семейство функция printf() и вызов strcasestr().

© OpenNet