Проект Enlightenment представил (https://phab.enlightenment.org/phame/live/3/post/efl_1_10_is.../) новое значительное обновление набора библиотек EFL 1.10 (http://enlightenment.org/p.php?p=about&l=en) (Enlightenment Foundation Library), позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux (https://www.opennet.ru/opennews/art.shtml?num=28750), телефонах Samsung (https://www.opennet.ru/opennews/art.shtml?num=24315), а также в продуктах компаний ProFUSION, Free.fr и Calaos.
Ключевые новшества EFL 1.10:- Завершено внедрение новой объектной модели Eo2, унифицирующей доступ ко всем объектам EFL и позволяющей уйти от прямого использования указателей на объекты EFL в пользу вызова по таблице с идентификаторами объектов;
- Новые биндинги EFL для языка C++. В виде отдельных библиотек поставляются биндинги Ecore-Cxx, Eet-Cxx, Eina-Cxx и Eo-Cxx. Биндинги
Evas-Cxx, Edje-Cxx, Ecore-Cxx и Ecore-Audio-Cxx автоматически генерируются на этапе сборки EFL. Для автоматической генерации биндингов C++ на основе файлов ".eo" поставляется инструмент Eolian-Cxx;
- Добавлена поддержка формата ETC1 (Ericsson Texture Compression) для сжатия изображений без потери качества. ETC1 поддерживается многими GPU встраиваемых платформ и может использоваться в EFL как при применении gl_x11, так и при программном рендиренге (в состав включён кодек на основе rg-etc1);- Улучшения в графической библиотеке Edje: В функциях вывода текста увеличена точность вычисления отступов. В фильтрах наложения текста теперь используется Lua-подобный синтаксис. Переработан язык EDC (Edje Data Collection): улучшена документация (http://docs.enlightenment.org/auto/edje/edcref.html), добавлена поддержка LazEDC, упрощены средства организации перехода между состояниями, добавлена поддержка использования групп как элементов целей (target), обеспечена возможность наследования элементов, значительно улучшено наследование групп;
- Добавлена утилита Eolian, позволяющая генерировать код на основе классов описания метаданных из файлов ".eo (https://phab.enlightenment.org/w/eolian/)". Eolian может использоваться для упрощения написания кода, взаимодействующего с объектной моделью Eo, через автоматическую генерацию API и обращения к API Eo;
- В виджеты из набора Elementary добавлена поддержка управления фокусом ввода и возможность перехода фокуса от одних виджетов к другим. Для обработки смены фокуса добавлены callback-вызовы "focused" и "unfocused";- В различные библиотеки внесены изменения, направленные на сокращение потребления памяти и увеличение производительности.
Одновременно с EFL выпущен набор виджетов Elementary 1.10, а также пакеты Emotion Generic Players 1.10 и Evas Generic Loaders 1.10. Emotion Generic Players включает реализации базовых компонентов для проигрывания медиаконтента. Evas Generic Loaders представляет собой коллекцию модулей, позволяющих организовать загрузку форматов svg, xcf, pdf, ps, ppt, doc, docx, xls, avi, mkv, wmv и т.д. Модули из состава Emotion Generic Players и Evas Generic Loaders выполнены в форме обособленных процессов, взаимодействующих с базовой программой через разделяемую память и неименованные каналы, что позволяет обеспечить продолжение работы программы на базе EFL, даже в случае краха обработчика медиаконтента.Состав EFL:
- Eina (http://trac.enlightenment.org/e/wiki/Eina) - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
- Eet (http://trac.enlightenment.org/e/wiki/Eet) - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.
- Evas (http://trac.enlightenment.org/e/wiki/Evas) - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определённые объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
- Ecore (http://trac.enlightenment.org/e/wiki/Ecore) - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т.п.
- Embryo (http://trac.enlightenment.org/e/wiki/Embryo) - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
- Edje (http://trac.enlightenment.org/e/wiki/Edje) - графическая библиотека, отделяющая внешний вид от кода (оформление задаётся в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабжённый анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
- Efreet (http://trac.enlightenment.org/e/wiki/Efreet) - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.
- Eldbus (http://trac.enlightenment.org/e/wiki/E_Dbus) - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
- Eeze (http://trac.enlightenment.org/e/wiki/Eeze) - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
- Expedite (http://trac.enlightenment.org/e/wiki/Expedite) - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Evil (http://trac.enlightenment.org/e/wiki/Evil) - реализация уровня совместимости для работы на платформе Windows.
- Eio (http://trac.enlightenment.org/e/wiki/Eio) - абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;- Emotion (http://trac.enlightenment.org/e/wiki/Emotion) - библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas.
- Ethumb (http://trac.enlightenment.org/e/wiki/Ethumb) - библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом.- Elementary (http://trac.enlightenment.org/e/wiki/Elementary) - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
- Eldbus...URL: https://phab.enlightenment.org/phame/live/3/post/efl_1_10_is.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=39858
>Evil- реализация уровня совместимости для работы на платформе Windows.
>EvilКакое говорящее название.
Было бы IDE как qtcreator... Эх, мечты..
Прикольно. Такой замечательный фреймворк запилили, который, правда, никому нафиг не нужен.
> Прикольно. Такой замечательный фреймворк запилили, который, правда, никому нафиг не нужен.это не их беда а горе-кодеров
Горе-кодеры используют более мощные, стабильные и портабельные фреймворки, вот лохи.
> Горе-кодеры используют более мощные, стабильные и портабельные фреймворки, вот лохи.Горе-кодеры просто сидят на привычном старье
> Горе-кодеры используют более мощные, стабильные и портабельные фреймворки, вот лохи.Например? (пожалуйста, основывайтесь на собственном опыте, особенно сравнивая)
Слушай, Михаил! В Альт Линуксе есть кое-какой уникальный софт, вроде своего, не мандрейковского, центра управления системой. Может ваша команда переведёт его на EFL? А то реально что-то мало софта! Я бы хотел увидеть на EFL Utorrent, а то Linux-версия имеет только веб-интерфейс. Наверное авторам программы стрёмно выкатывать бинарник в 5 Мб, использующий связку GTK+GLIB+ATK+Pango+Cairo+Freetype+XML, когда бинарник для Windows занимает ровно мегабайт.
Аналитег? Ну так приведи пример того что будет реально кардинально заглавнее сабжа?
ФреймворкИ? Есть только один "мощный, стабильный и портабельный фреймворк" - это Qt, но его разработчики звезданулись на JavaScript.
Вспоминаю,как он на пентиумах 133 тормозил, по сравнению с gtk. Для встройки идеальный вариант, достаточно легко настраивается под нужды в данном месте. Но с переносимостью есть проблемки.
Сейчас уже просто летает!!!
На том же железе ;-)
И косяки со шрифтами остались с 1998 :-)
Для Lua бы еще биндинг!!!
Вот так нахреначили библиотек. Да ещё и состав постоянно меняется. Лет 6 назад я хотел для курсача написать GUI с использованием ETK - и гда она теперь? Выкинули давно. А была навороченная библиотека для построения GUI в составе этого EFL.
У меня как-то E17 и stable в голове не укладывается. Для холодильников и микроволновок может и сойдет конечно, но эээ...Из текста
Eldbus - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
и чуть ниже
Eldbus - надстройкой над DBus API, заменившая собой ранее доступный модуль E_Dbus. Поддержка E_dbus пока сохранена, но больше не будет обновляться;
wtf?
Всё это хорошо конечно, но софта на EFL я ещё не видел.
Wayland не поддерживается — в печь.
http://wayland.freedesktop.org/efl.html