Пояснение | Набор разработанных в недрах проекта Enlightenment библиотек, позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Данные качества делают EFL неплохим выбором для построения интерфейсов потребительской электроники и мобильных устройств. В частности, системы на базе EFL используются в продуктах компаний Electrolux, Samsung, ProFUSION, Free.fr и Calaos.
EFL состоит из следующих базовых компонентов:
- Evas 1.0.0 - система рендеринга, используемая для организации вывода на экран и обеспечивающая замечательную производительность даже без задействования аппаратной акселерации вывода. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации;
- Edje 1.0.0 - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменен);
- Eina 1.0.0 - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.);
- Eet 1.4.0 - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке;
- Ecore 1.0.0 - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.;
- Embryo 1.0.0 - библиотека для написания небольших компилируемых приложений для встраиваемых устройств;
- E_Dbus - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main;
- Efreet - библиотека, позволяющая использовать в приложениях некоторые специфкации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню;
- Eeze - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы;
Дополнительные компоненты, развиваемые в рамках проекта Enlightenment:
- Elementary - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста);
- Enlightenment - оконный менеджер, на базе которого, в сочетании с такими компонентами, как файловый менеджер, набор виджетов и рабочий стол, формируется десктоп-окружение;
- Ephoto - менеджер для управления коллекцией фотографий;
- Eve - web-браузер на базе движка WebKit (используется библиотека EFLWebKit);
- Editje - визуальный редактор для проектирования пользовательского интерфейса, оперирующий файлами .edc и .edj;
- Eio - абстрактный интерфейс для доступа к файловой системе;
- Efreet - библиотека, позволяющая использовать в приложениях некоторые специфкации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню;
- Ethumb - библиотека для формирования эскизов изображений;
- Биндинги для языков Python, Javascript, Vala, C++, Perl и Ruby;
|