Представлен стабильный релиз набора библиотек EFL (Enlightenment Foundation Library) версии 1.7, компоненты которого составляют основу проекта Enlightenment 17.
Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Кроме того, EFL написан на языке C и легко портируется на новые аппаратные платформы. Данные качества делают EFL привлекательным решением для построения интерфейсов потребительской электроники и мобильных устройств. Например, системы на базе EFL уже используются в холодильниках Electrolux, промышленных принтерах компании Intermec, телефонах Samsung, продуктах компаний ProFUSION, Free.fr и Calaos. Кроме того, EFL является основой для GUI в мобильной платформе Tizen.
В этом релизе была произведена синхронизация номеров версий, поэтому все компоненты EFL имееют версию 1.7. В дальнейшем код всех компонентов будет объединён в одну кодовую базу.
В состав EFL входят следующие компоненты:
- Eina — библиотека с реализацией различных типов данных (массив, хеш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
В новой версии произошли следующие изменения:- Добавлена поддержка обратной трассировки в Eina_Log.
- Добавлена вспомогательная функция для итерации по строкам для отображённого файла.
- Исправлена проблема с округлением в eina_f32p32_{sin,cos}.
- Исправлено несколько проблем с портируемостью библиотеки.
- Eet — библиотека, позволяющая записать любой набор блоков данных в файл и затем осуществить их быстрое произвольное чтение.
В новой версии произошли следующие изменения:- Добавлено обнаружение выхода за границы при установке Eet Data Descriptor.
- eet_dictionary стал потокобезопасным.
- Другие незначительные исправления ошибок и устранения утечек памяти.
- Evas — система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в будущем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом, над сценой можно проделывать такие операции, как: масштабирование, вращение и 3D-преобразование. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
В новой версии произошли следующие изменения:- Добавлен объект Textgrid.
- Добавлен тип Evas_Smart_Interface, предоставляющий простые интерфейсы к умным объектам.
- Отрисовка шрифтов теперь делается без блокировок.
- Добавлено кеширование при преобразованиях из Evas_Map в RGBA_Map.
- Множество других оптимизаций.
- Добавлена отрисовка svg через Esvg (раньше это делалось через более медленный rsvg).
- Множество различных исправлений ошибок.
- Evas Generic Loaders — набор модулей для Evas, реализующих загрузку дополнительных форматов файлов, среди которых: xcf, ps, pdf, raw и мультимедийные форматы (через gstreamer).
В новой версии произошли следующие изменения:- Сюда из Evas перемёщен модуль для отрисовки svg, работающий через rsvg.
- Добавлена поддержка poppler-0.20.
- Ecore — библиотека для организации цикла обработки событий, имеющая в своём арсенале набор модулей для упрощения связанных с обработкой событий задач, таких, как: работа с X, Evas, потоками, сетевыми соединениями и т.д.
В новой версии произошли следующие изменения:- Новые функции в ecore: ecore_main_fd_handler_file_add() и ecore_fork_reset().
- В ecore_evas добавлены функции для установки и получения профилей Ecore_Evas.
- В ecore_x добавлены функции для установки и получения профилей окон Ecore_X.
- В ecore_con добавлены ECORE_{CON,IPC}_NO_PROXY для отключения прокси для некоторых соединений.
- Новый, более быстрый dns-бэкенд в ecore_con.
- Добавлен новый immodule для поддержки ibus.
- Множество исправлений ошибок.
- Embryo — библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
- Edje — графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять, просто сменив EDJ-шаблон и не трогая код; при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
В новой версии произошли следующие изменения:- Добавлен edje_watch, отслеживающий изменения в edje-файлах.
- edje_player автоматически перечитывает файл, если он изменился на диске.
- Добавлен элемент SPACER, как более быстрый аналог невидимых RECT.
- Компилятор теперь выдаёт ошибку при клиппировании не к элементу RECT.
- Выделение памяти для Evas_Map осуществляется за один раз.
- edje_cc стал быстрее за счёт улучшения парсера, отображения файлов в память и использования потоков.
- Ускорен поиск color_class за счёт задействования хеширования.
- Различные исправления ошибок и утечек памяти.
- Efreet — библиотека, упрощающая использование спецификаций freedesktop.org по работе с пиктограммами, desktop-файлами и меню.
В новой версии произошли следующие изменения:- Ускорена загрузка mime-типов.
- Добавлена поддержка XDG_DESKTOP_DIR.
- E_Dbus — надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
В новой версии произошли следующие изменения:- Увеличено количество проверок переданных значений на NULL.
- Исправлена поддержка свойств.
- Другие исправления ошибок.
- Eeze — библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
В новой версии произошли следующие изменения:- Добавлена поддержка джойстиков.
- Обеспечена поддержка систем без mtab.
- Emotion — библиотека для проигрывания видео и аудио с помощью Gstreamer, Xine или других внешних плагинов (VLC), а также для отображения видео в Evas как стандартного объекта.
В новой версии произошли следующие изменения:- В плеер добавлена поддержка обратного вызова «playback_started».
- Добавлена синхронизация отрисовки с Ecore_Animator.
- Другие улучшения и исправления ошибок.
- Eio — библиотека для поддержки асинхронного API для ввода/вывода.
В новой версии:- Исправлено несколько ошибок и устранены утечки памяти.
- Ethumb — это библиотека для генерации миниатюр. Ethumb реализован как сервис dbus и клиентская библиотека, работающая с этим сервисом.
- Elementary — это набор виджетов, построенных на основе остальных компонент EFL, предоставляющий набор стандартных виджетов со стандартным поведением для облегчения создания GUI-приложений.
В новой версии произошли следующие изменения:- Добавлена возможность перемещения фокуса в любом направлении с помощью elm_widget_focus_go().
- Тема виджетов автоматически перечитывается при изменении на диске.
- Добавлены множество новых API-функций.
- К виджетам с индикатором выполнения добавлен сигнал «changed».
- Выделение памяти для Evas_Map осуществляется один раз.
- За счёт интеграции с Eio в некоторые виджетах реализована «ленивое» обновление содержимого.
- Множество других исправлений и улучшений.
Также доступен свежий снапшот для Enlightenment.
На основе EFL 1.7 будет выпущена первая стабильная версия Enlightenment 17. Разработчики планируют выпустить её до конфереции EFL Developer Day, которая состоится в Барселоне 5го ноября.
>>> Подробности