Представлен стабильный релиз набора библиотек EFL (Enlightenment Foundation Library) 1.1, компоненты которого составляют основу проекта Enlightenment 17, релиз которого после более чем 9 лет разработки можно ожидать в ближайшем будущем. Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Данные качества делают EFL привлекательным решением для построения интерфейсов потребительской электроники и мобильных устройств. Например, системы на базе EFL уже используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos.

Характеристики основных компонентов EFL:

  • Eina 1.1.0 - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).

    В новой версии добавлены следующие новшества: функции преобразования для UTF8, функция eina_list_move для прямого перемещения узлов между списками, API для парсинга SAX XML, API для вставки отсортированных значений, API для перепаковки mempool, eina_file API для переносимого маппинга памяти, обвязка вокруг средств блокировки нитей, prefix API для определения базового пути к приложению или библиотеке, refcount macro API, binbuf с реализацией бинарных буферов, eina_hash_free_cb_set API, eina_main_loop_is API, eina_strbuf_manage_new/eina_ustrbuf_manage_new APIs, eina_xattr API и eina_hash_murmur3 API;
  • Eet 1.5.0 - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.

    В новой версии проведены дополнительные оптимизации потребления памяти и производительности, добавлен API EET_DATA_DESCRIPTOR_ADD_LIST_STRING для работы со списками строк, API eet_node для манипулирования узлами, eet_alias_get API, eet_data_xattr_cipher_get/eet_data_xattr_cipher_set API и EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY API;
  • Evas 1.1.0 - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.

    В новой версии реализовано около 60 улучшений, среди которых: поддержка движка GL Cocoa, API для работы с очень большими изображениями, поддержка цветовых схем NV12 и MT12 для объектов с изображениями, дополнительные параметры управления шрифтами, поддержка кэширования GL-шейдеров и текстур на диске, поддержка внешнего процесса-загрузчика для такого контента, как xcf, pdf и видео, загрузчики для ICO, WBMP и PSD, увеличена скорость кодирования и декодирования JPEG, проведены оптимизации производительности для различных компонентов. Расширены возможности, связанные с блоками для работы с текстом: поддержка спецсимволов, вертикального выравнивания, автовыравнивания, формы для паролей, различные режимы переноса, оптимизация производительности;
  • Ecore 1.1.0 - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.

    В новой версии добавлено около 40 новых функций, улучшена поддержка IPv6, проведена оптимизация потребления памяти, улучшена поддержка платформ Windows и Mac OS X;
  • Embryo 1.1.0 - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.

    В новой версии улучшена поддержка платформы Windows;
  • Edje 1.1.0 - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменен).

    В новой версии добавлен эффект зеркала, автоматическое выравнивание текста, расширенные опции управления курсором, возможность управления направлением теней, новые виды интерполяции (ACCEL_FAC, DECEL_FAC, SIN_FAC, DIVIS, BOUNCE, SPRING), дополнительные сигналы для обработки событий, связанных с буфером обмена, API для управления параметрами шаблонов панелей ввода данных. Значительно расширен API для скриптов на языке Lua;
  • Efreet 1.1.0 - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.

    В новой версии добавлена поддержка кэширования в памяти eet-файлов, постоянное кэширование иконок, ускорение операций по обработке строк, ускорение работы с маской "*" в именах файлов;
  • E_Dbus 1.1.0 - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.

    В новой версии добавлена поддержка API connman-0.7x, обеспечена поддержка протокола нотификации 1.2, добавлены функции e_notification_action_id_get, e_notification_action_name_get и e_notification_image_init;
  • Eeze 1.1.0 - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.

    В новой версии добавлен API для монтирования дисковых разделов, увеличено число функций, связанных с получением информации о дисках, добавлена утилита eeze_scanner;
  • Expedite 1.1.0 - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.

Дополнительные компоненты, развиваемые в рамках проекта Enlightenment:

  • Elementary - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста);
  • Enlightenment - оконный менеджер, на базе которого, в сочетании с такими компонентами, как файловый менеджер, набор виджетов и рабочий стол, формируется десктоп-окружение;
  • Ephoto - менеджер для управления коллекцией фотографий;
  • Eve - web-браузер на базе движка WebKit (используется библиотека EFLWebKit);
  • Editje - визуальный редактор для проектирования пользовательского интерфейса, оперирующий файлами .edc и .edj;
  • Eio - абстрактный интерфейс для доступа к файловой системе;
  • Ethumb - библиотека для формирования эскизов изображений;
  • Биндинги для языков Python, Javascript, Vala, C++, Perl и Ruby;

Дополнение: Отдельно представлен релиз библиотеки Evil 1.0.0, в которой реализован уровень совместимости для работы на платформе Windows.

Источник: http://www.opennet.ru/opennews/art.shtml?num=32456