Проект 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().