Представлен стабильный релиз набора библиотек EFL (Enlightenment Foundation Library) 1.1, компоненты которого составляют основу проекта Enlightenment 17. Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Данные качества делают EFL привлекательным решением для построения интерфейсов потребительской электроники и мобильных устройств. Например, системы на базе EFL уже используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos. Не в последнюю очередь успех EFL среди коммерческих компаний обеспечен лицензией BSD.
Характеристики основных компонентов EFL:
- Eina - библиотека с реализацией различных типов данных (массив, хеш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
В версии 1.1 добавлены следующие новшества:- вспомогательные функции для упрощения работы с UTF-8;
- функция 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 API;
- eina_xattr API;
- eina_hash_murmur3 API;
- улучшения масштабируемости и производительности в Chained Mempool;
- Eet - библиотека, позволяющая записать любой набор блоков данных в файл и затем осуществить их быстрое решительное произвольное чтение.
В версии 1.5:- проведены дополнительные оптимизации потребления памяти и производительности;
- улучшено качество кодирования и декодирования jpeg-файлов (за счёт выбора более медленного алгоритма);
- добавлен 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 - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
В версии 1.1 реализовано около 60 улучшений, среди которых:- поддержка движка GL Cocoa;
- поддержка цветовых схем NV12 и MT12 для объектов с изображениями;
- дополнительные параметры управления шрифтами;
- поддержка кеширования GL-шейдеров и текстур на диске;
- поддержка внешнего процесса-загрузчика для такого контента, как xcf, pdf и видео;
- загрузчики для ICO, WBMP и PSD;
- улучшено качество кодирования и декодирования для JPEG;
- проведены оптимизации производительности для различных компонентов;
- расширены возможности, связанные с блоками для работы с текстом: поддержка спец. символов, вертикального выравнивания, автовыравнивание, формы для паролей, различные режимы переноса;
- удалена поддержка рендеринга с помощью quartz, cairo, qtopia и xrender.
- Evas Generic Loaders - набор модулей для Evas, реализующих загрузку дополнительных форматов файлов, среди которых: xcf, ps, pdf, raw и мультимедийные форматы (через gstreamer). Версия 1.1 является первым выпуском этого компонента.
- Ecore - библиотека для организации цикла обработки событий, имеющая в своём арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, потоками, сетевыми соединениями и т.д.
В версии 1.1:- добавлено около 40 новых функций;
- улучшена поддержка IPv6;
- проведена оптимизация потребления памяти;
- улучшена поддержка платформ Windows и Mac OS X;
- Embryo - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
В версии 1.1 улучшена поддержка платформы Windows; - Edje - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
В версии 1.1:- добавлен эффект зеркала;
- автоматическое выравнивание текста;
- расширенные опции управления курсором;
- возможность управления направлением теней;
- новые виды интерполяции (ACCEL_FAC, DECEL_FAC, SIN_FAC, DIVIS, BOUNCE, SPRING);
- дополнительные сигналы для обработки событий, связанных с буфером обмена;
- API для управления параметрами шаблонов панелей ввода данных;
- значительно расширен API для скриптов на языке Lua;
В версии 1.1:- добавлена поддержка кеширования в памяти eet-файлов;
- постоянное кеширование пиктограмм;
- ускорение операций по обработке строк;
- ускорение работы с маской «*» в именах файлов;
- E_Dbus - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
В версии 1.1:- добавлена поддержка API connman-0.7x;
- обеспечена поддержка протокола нотификации 1.2;
- добавлены функции e_notification_action_id_get, e_notification_action_name_get и e_notification_image_init;
- Eeze - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
В версии 1.1:- добавлен API для монтирования дисковых разделов;
- увеличено число функций, связанных с получением информации о дисках;
- добавлена утилита eeze_scanner;
Кроме выхода библиотек входящих в состав EFL, можно отметить выход:
- Expedite-1.1 - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Evil-1.0 - библиотека, содержащая некоторые функции Unix портированные под Windows. Служит для упрощения портирования e17.
- Также доступны снапшоты свежих версий Elementary и Enlightenment.
Новость частично взята с сайта OpenNet.ru
>>> Подробности