Проект Enlightenment опубликовал (http://www.rasterman.com/post/efl-120-is-out) набор библиотек EFL 1.20 (http://enlightenment.org/p.php?p=about&l=en) (Enlightenment Foundation Library), позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux (https://www.opennet.dev/opennews/art.shtml?num=28750), телефонах Samsung (https://www.opennet.dev/opennews/art.shtml?num=24315), а также в продуктах компаний ProFUSION, Free.fr и Calaos.С момента прошлого выпуска внесено более 1600 изменений от 60 авторов. Проведена работа по увеличению качества кода - в тестах Coverity (https://scan.coverity.com/projects/enlightenment-foundation-...) показатель качества доведён до 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 (https://www.enlightenment.org/about-efl):
- Eina (http://trac.enlightenment.org/e/wiki/Eina) - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
- Eet (http://trac.enlightenment.org/e/wiki/Eet) - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.
- Evas (http://trac.enlightenment.org/e/wiki/Evas) - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определённые объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
- Ecore (http://trac.enlightenment.org/e/wiki/Ecore) - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.
- Embryo (http://trac.enlightenment.org/e/wiki/Embryo) - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
- Edje (http://trac.enlightenment.org/e/wiki/Edje) - графическая библиотека, отделяющая внешний вид от кода (оформление задаётся в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабжённый анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
- Efreet (http://trac.enlightenment.org/e/wiki/Efreet) - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.
- Eeze (http://trac.enlightenment.org/e/wiki/Eeze) - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
- Expedite (http://trac.enlightenment.org/e/wiki/Expedite) - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Evil (http://docs.enlightenment.org/auto/efl/evil_main.html) - реализация уровня совместимости для работы на платформе Windows.
- Eio (http://trac.enlightenment.org/e/wiki/Eio) - абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;
- Emotion (http://trac.enlightenment.org/e/wiki/Emotion) - библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas.
- Ethumb (http://trac.enlightenment.org/e/wiki/Ethumb) - библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом.
- Elementary (http://trac.enlightenment.org/e/wiki/Elementary) - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
- Eldbus (http://git.enlightenment.org/legacy/eldbus.git/tree/README) - надстройкой над DBus API, заменившая собой ранее доступный модуль E_Dbus (http://trac.enlightenment.org/e/wiki/E_Dbus). Поддержка E_dbus пока сохранена, но больше не будет обновляться;
- Ephysics (http://docs.enlightenment.org/auto/ephysics/) - предоставляет средства для использования движка симуляции физических процессов Bullet Physics Engine (http://bulletphysics.org/) в приложениях на базе EFL. Ephysics обеспечивает связку Bullet с библиотеками Ecore и Evas;
- Ecore Audio - API для работы со звуком.
- Elocation - библиотека для получения информации о географическом местоположении.
URL: http://www.rasterman.com/post/efl-120-is-out
Новость: http://www.opennet.dev/opennews/art.shtml?num=46974