Представлен стабильный релиз набора библиотек EFL (Enlightenment Foundation Library) 1.2, компоненты которого составляют основу проекта Enlightenment 17. Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Данные качества делают EFL привлекательным решением для построения интерфейсов потребительской электроники и мобильных устройств. Например, системы на базе EFL уже используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos. Не в последнюю очередь успех EFL среди коммерческих компаний обеспечен лицензией BSD. Основным новшеством этого релиза стало добавление набора виджетов Elementary.
Характеристики основных компонентов EFL:
- Eina - библиотека с реализацией различных типов данных (массив, хеш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
В версии 1.2 добавлены следующие новшества:
- API Eina_Semaphore.
- Итератор для Eina_Xattr: eina_xattr_value_fd_ls и eina_xattr_value_ls.
- Xattr-итератор для Eina_File: eina_file_xattr_get/value_get.
- Тип данных eina_inarray.
- Тип данных eina_value.
- eina_file_stat.
- Ускорена работа Eina_Rbtree.
- Eet - библиотека, позволяющая записать любой набор блоков данных в файл и затем осуществить их быстрое произвольное чтение.
В версии 1.6:
- Добавлена поддержка GNUTLS 3.x.
- eet_dictionary_count.
- API EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY.
- Большинство выделений памяти делается в пулах памяти.
- Добавлено "eet -t FILE.EET" для получения статистики о eet-файлах.
- Размер пакета в eet_connection увеличен до 1МБ.
- Evas - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-преобразований. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
В версии 1.2:
- В Textblock добавлена поддержка "самозакрывающихся" тегов таких как
. - Добавлен Shm-движок для рисования в Wayland.
- API evas_object_smart_callback_del_full.
- В движок buffer добавлена поддержка двойной буферизации.
- evas_textblock_cursor_word_start/end.
- evas_textblock_text_utf8_to_markup.
- Теги b и i в textblock стало возможно перезадать с помощью style.
- Новый API для установки и получения значения флагов событий.
- События сразу перед/после отрисовки холста.
- API для установки и получения frame object.
- evas_object_name_child_find.
- EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN.
- EVAS_GL_OPTIONS_DIRECT.
- evas_object_textblock_style_user_pop/push.
- Использование Eina_File mmap при доступе к файлам в форматах bmp, ico, pmaps, psd, wbmp и xpm.
- Расширена поддержка программной отрисовки через pixman.
- Бэкенд evasgl для программ использующих OSMesa.
- Был удалён движок Software_SDL.
- В Textblock добавлена поддержка "самозакрывающихся" тегов таких как
- Evas Generic Loaders - набор модулей для Evas, реализующих загрузку дополнительных форматов файлов, среди которых: xcf, ps, pdf, raw и мультимедийные форматы (через gstreamer). В версии 1.2:
- Добавлены символические ссылки для *.dv, *.qt и *.rv видео форматов.
- Ecore - библиотека для организации цикла обработки событий, имеющая в своём арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, потоками, сетевыми соединениями и т.д.
В версии 1.2:
- Добавлено множество новых функций.
- API ecore_con_socks.
- Поддержка Wayland.
- Большинство выделений памяти делается в пулах памяти.
- Возможность добавления сертификатов STARTTLS в ecore_con
- Embryo - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
В версии 1.2:
- Поддержка exotic.
- Добавлены функции asin(), acos(), atan(), atan2(), log1p(), cbrt(), exp(), exp2(), hypot().
- Edje - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
В версии 1.2:
- Умный обратный вызов "recalc" для изменения размеров объекта.
- EDJE_ASPECT_PREFER_SOURCE.
- Добавлены min: SOURCE и max: SOURCE для IMAGE и GROUP.
- Сигнал cursor,changed,manual от элемента.
- undo/redo в элемене + IMF.
- Для vkbd добавлены типы HEX, TERMINAL, PASSOWORD.
- Добавлена возможность отключения рассылки широковещательных сигналов.
- Добавлено множество новых функций.
- Двойной щелчок в элементе выбирает слово, тройной -- строку.
- Ускорена загрузка edje-файлов.
- Уменьшено количество вызовов функции stat в edje_object_file_set.
- Сценарии на Lua теперь более устойчивы к изменениям API.
- edje_cc сохраняет в edje-файлы только активно используемые изображения.
- Efreet - библиотека, упрощающая использование спецификаций freedesktop.org по работе с пиктограммами, desktop-файлами и меню.
В версии 1.2:
- Теперь вместо opendir() используется eina_file_direct_ls().
- Улучшена документация.
- E_Dbus - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
В версии 1.2:
- Улучшено использование eina_log в enotify-daemon.
- Eeze - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
В версии 1.2:
- Обнаружение bluetooth-устройств.
- API для сетевых устройств (eeze_net_*).
- Emotion - библиотека для проигрывания видео и аудио с помощью Gstreamer, Xine или других внешних плагинов (VLC) а также для отображения видео в Evas как стандартного объекта. Версия 1.0 это первая стабильная версия Emotion.
- Eio - библиотека для поддержки асинхронного API для ввода/вывода. Версия 1.0 это первая стабильная версия Eio.
- Ethumb - это библиотека для генерации миниаютюр. Ethumb реализован как сервис dbus и клиентская библиотека, работающая с этим сервисом.
- Elementary - это набор виджетов, построенных на основе остальных компонент EFL, предоставляющий набор стандартных виджетов со стандартным поведением для облегчения создания GUI-приложений.
Кроме выхода библиотек входящих в состав EFL, можно отметить выход:
- Expedite-1.2 - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Также доступен свежий снапшот для Enlightenment.
Стоит также отметить, что теперь после выпуска стабильной версии Elementary разработчики проекта намерены вплотную заняться подготовкой первой стабильной версии Enlightenment 17.
>>> Сайт проекта Enlightenment