Проект Enlightenment представил релиз EFL 1.8 (Enlightenment Foundation Library)
В преддверии выпуска пользовательского окружения окружения Enlightenment 18 увидел свет стабильный релиз набора библиотек EFL 1.8 (Enlightenment Foundation Library). Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos. Выпуск EFL 1.8 примечателен уходом от практики разрозненной поставки компонентов EFL в форме набора отдельно поставляемых архивов библиотек. Отныне библиотеки Ecore, Edje, Eet, Eeze, Efreet, Eina, Eio, Embryo, Emotion, Ethumb, Evas и Evil объединены в одно дерево исходных текстов и доступны для загрузки в одном архиве. В отдельные архивы вынесены только виджеты Elementary, набор Emotion Generic Players с реализацией базовых компонентов для проигрывания медиаконтента (в настоящее время доступна только одна реализация на основе libvlc) и коллекция модулей Evas Generic Loaders, позволяющих организовать загрузку форматов svg, xcf, pdf, ps, ppt, doc, docx, xls, avi, mkv, wmv и т.д. Модули из состава Emotion Generic Players и Evas Generic Loaders выполнены в форме обособленных процессов, взаимодействующих с базовой программой через разделяемую память и неименованные каналы, что позволяет обеспечить продолжение работы программы на базе EFL, даже в случае краха обработчика медиаконтента.
Другие изменения:
Обеспечена полная поддержка Wayland 1.3. Работа в роли клиента, функционирующего поверх Wayland, доведена до готовности к применению в повседневной практике; Новая библиотека Eldbus, выступающая надстройкой над DBus API и заменившая собой ранее доступный модуль E_Dbus. Поддержка E_dbus пока сохранена, но данная библиотека больше не будет обновляться; Новая библиотека Ephysics, предоставляющая средства для использования движка симуляции физических процессов Bullet Physics Engine в приложениях на базе EFL. Ephysics обеспечивает связку Bullet с библиотеками Ecore и Evas; Новая библиотека Ecore Audio, предоставляющая API для работы со звуком. API пока носит экспериментальный характер, но сама библиотека достаточно стабильна и уже используется Edje для обработки звуковых эффектов в темах оформления; Добавлена новая тема оформления виджетов Elementary, которая напоминает тёмное оформление, ранее используемое в первых выпусках Enlightenment 0.7, но более имеет заметно более высокое качество и уровень проработки. Новой темой в том числе поддерживаются все элементы окружения Enlightenment, что позволяет использовать её как для EFL, так и для Enlightenment; В Evas Generic Loaders добавлена обвязка для использования LibreOffice для генерации миниатюр типовых офисных форматов документов; Cистема программного рендеринга в Evas переведена на асинхронный механизм работы, что позволило обеспечить возможность параллельного выполнения операций отрисовки во время выполнения основной логики работы приложения. Рендеринг выполняется в отдельной фоновой нити. Указанное изменение позволяет избежать задержек в отрисовке и более полно использовать ресурсы многоядерных систем. Представлена новая объектная модель Eo, унифицирующая доступ ко всем объектам EFL и позволяющая уйти от прямого использования указателей на объекты EFL в пользу вызова по таблице с идентификаторами объектов. В настоящее время унификация ещё не завершена и API носит экспериментальный характер. Полнофункциональная реализация Eo ожидается в выпуске EFL 2.0, в котором будут предоставлены соответствующие интерфейсы, множественное наследование, унифицированные callback-прототипы, интроспекция. Состав 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-файлами и меню. Eldbus — надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main. 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 — набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
© OpenNet