В преддверии выпуска пользовательского окружения окружения Enlightenment 18 увидел свет (https://phab.enlightenment.org/phame/live/3/post/efl_1_8/) стабильный релиз набора библиотек EFL 1.8 (http://enlightenment.org/p.php?p=about&l=en) (Enlightenment Foundation Library). Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux (http://www.opennet.dev/opennews/art.shtml?num=28750), телефонах Samsung (http://www.opennet.dev/opennews/art.shtml?num=24315), а также в продуктах компаний ProFUSION, Free.fr и Calaos.<center><a href="http://git.enlightenment.org/legacy/subversion-history.git/p... src="http://www.opennet.dev/opennews/pics_base/0_1385967515.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
Выпуск 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 (http://www.opennet.dev/opennews/art.shtml?num=38132). Работа (https://phab.enlightenment.org/w/wayland/) в роли клиента, функционирующего поверх Wayland, доведена до готовности к применению в повседневной практике;
- Новая библиотека Eldbus (http://git.enlightenment.org/legacy/eldbus.git/tree/README), выступающая надстройкой над DBus API и заменившая собой ранее доступный модуль 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 для работы со звуком. 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 (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-файлами и меню.
- Eldbus (http://trac.enlightenment.org/e/wiki/E_Dbus) - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
- 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://trac.enligh...
URL: https://phab.enlightenment.org/phame/live/3/post/efl_1_8/
Новость: http://www.opennet.dev/opennews/art.shtml?num=38565