Новая версия EFL 1.20 (Enlightenment Foundation Library)
Проект Enlightenment опубликовал набор библиотек EFL 1.20 (Enlightenment Foundation Library), позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos.
С момента прошлого выпуска внесено более 1600 изменений от 60 авторов. Проведена работа по увеличению качества кода — в тестах Coverity показатель качества доведён до 0.03 ошибок на 1000 строк кода (для сравнения в Qt — 0.72, glib — 0.44, ядре Linux — 0.47, OpenSSL — 0.32). В 1.1 млн строк кода устранено 1288 дефектов, выявленных Coverity, неисправленными остаются 38 дефектов.
Улучшена поддержка Wayland и расширены компоненты для взаимодействия с подсистемой DRM (Direct Rendering Manager) ядра Linux, в том числе добавлена поддержка атомарного переключения видеорежимов и создания multiseat-конфигураций, в которых за одним рабочим столом может одновременно работать несколько человек со своими клавиатурами и мышами. Обеспечена качественная работа Enlightenment и EFL на платах Rapberry Pi 3 (ARM + VC4), O-DROID XU3/XU4 (ARM + Mali-6xx) и различных устройствах с сенсорными экранами на базе чипов Intel. Продолжено развитие средств для отладки и профилирования.
Состав EFL:
- Eina — библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
- Eet — библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.
- Evas — система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определённые объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
- Ecore — библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.
- Embryo — библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
- Edje — графическая библиотека, отделяющая внешний вид от кода (оформление задаётся в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабжённый анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
- Efreet — библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.
- Eeze — библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
- Expedite — инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Evil — реализация уровня совместимости для работы на платформе Windows.
- Eio — абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;
- Emotion — библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas.
- Ethumb — библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом.
- Elementary — набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
- Eldbus — надстройкой над DBus API, заменившая собой ранее доступный модуль E_Dbus;
- Ephysics — предоставляет средства для использования движка симуляции физических процессов Bullet Physics Engine в приложениях на базе EFL. Ephysics обеспечивает связку Bullet с библиотеками Ecore и Evas;
- Ecore Audio — API для работы со звуком.
- Elocation — библиотека для получения информации о географическом местоположении.
© OpenNet