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

Новые компоненты EFL, переведённые в разряд стабильных:

  • Eio 1.0.0 - абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;
  • Emotion 1.0.0 - библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas;
  • Ethumb 1.0.0 - библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом;
  • Elementary 1.0.0 - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).

Обновление компонентов, ранее входящих в состав EFL:

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

    В новой версии добавлен API для управления семафорами, реализован итератор Eina_Xattr, добавлены новые типы данных eina_inarray и eina_value, ускорена работа Eina_Rbtree;
  • Eet 1.6.0 - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.

    В новой версии проведены дополнительные оптимизации потребления памяти и производительности, добавлена поддержка GNUTLS 3.x, реализован API EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY, размер eet_connection увеличен до 1 Мб;
  • Evas 1.2.0 - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определённые объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.

    В новой версии реализовано около 40 изменений, среди которых: движок Shm для отрисовки с использованием Wayland, оптимизация производительности, прекращение поддержки движка Software_SDL, поддержка двойной буферизации в движке buffer, новые API для управления флагами событий и для манипулирования объектами фреймов, бэкенд evasgl для ПО, использующего Mesa;
  • Ecore 1.2.0 - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.

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

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

    В новой версии добавлены vkbd-типы HEX, TERMINAL, PASSOWORD, реализовано около 30 новых функций, увеличена скорость загрузки Edje-файлов, улучшены средства для интеграции скриптов на языке Lua;
  • Efreet 1.2.0 - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.

    В новой версии отмечено несколько незначительных исправлений;
  • E_Dbus 1.2.0 - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.

    В новой версии проведена работа над ошибками;
  • Eeze 1.2.0 - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.

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

    В новой версии удалена поддержка движков SDL 16bpp и Software_SDL;
  • Evil 1.1.0 - реализация уровня совместимости для работы на платформе Windows.

    Среди улучшений незначительное расширение API, например, добавлено POSIX-совместимое семейство функция printf() и вызов strcasestr().



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