DirectFB2 — это новый проект с открытым исходным кодом, который возвращает DirectFB, графическую библиотеку, оптимизированную для встраиваемых систем на базе Linux, которая была популярна несколько лет назад для 2D-пользовательских интерфейсов, но с тех пор в основном исчезла. DirectFB2 пытается сохранить оригинальный сервер DirectFB, добавляя новые функции, такие как современные 3D API, такие как Vulkan и OpenGL ES.
Мы использовали его в 2008-2009 годах, когда работали с медиапроцессорами Sigma Designs, которые полагались на библиотеку DirectFB для рендеринга пользовательских интерфейсов для IPTV-боксов, караоке-машин и так далее. Это вынудило нас отказаться от решения MicroWindows + Framebuffer, но DirectFB API было достаточно простым в использовании и позволило нам разработать более приятный пользовательский интерфейс.
О новом проекте мы узнали, ознакомившись с расписанием FOSDEM 2022 и выступлением под названием «Назад в DirectFB! Возрождение DirectFB с DirectFB2», который будет представлен Николасом Карамелли (Nicolas Caramelli) 5 февраля. У нас все еще есть несколько деталей, включая некоторые из основных изменений, включая систему сборки Meson, реализацию на чистом C и модульность исходного кода.
Библиотека DirectFB2 (libdirectfb.so) может получить доступ к низкоуровневому драйверу дисплея одним из двух способов:
- Интерфейс фреймбуфера Linux (/dev/fb0) обрабатывается плагином libdirectfb_fbdev.so
- Интерфейс KMS/DRM (/dev/dri/card0), управляемый плагином libdirectfb_drmkms.so
Аппаратно-ускоренный рендеринг графики также может быть достигнут с помощью архитектуры модулей драйвера GFX при условии, что платформа поддерживается. Николас говорит, что базовая библиотека очень легкая, без каких-либо внешних зависимостей и обеспечивает базовую поддержку рендеринга шрифтов, изображений и видео, как это видно из приведенных выше примеров DirectFB.
Помимо базовой поддержки, DirectFB2 можно дополнительно расширить с помощью пакета DirectFB-media, добавляющего библиотеку FreeType, рендеринга изображений с помощью библиотек libpng или jpeg, рендеринга видео с помощью библиотек FFmpeg или GStreamer. Еще одна новая разработка — поддержка 3D-графики через рендеринг OpenGL (ES) или Vulkan, тогда как рендеринг 2D-графики можно выполнять с помощью библиотек Cairo или Evas. DirectFB(2) также может обрабатывать пользовательский ввод (например, клавиатуру и мышь) через интерфейс консоли (/dev/tty0), интерфейс событийного устройства (/dev/input/event0/1 и/или интерфейс мыши PS/2 ( /dev/psaux) .
Если вы хотите найти дополнительную информацию и начать работу, ознакомьтесь с репозиторием Github и документацией с примерами программ, таких как эмулятор терминала dfbterm, различные примеры DirectFB, тесты тесты, совместимые наборы инструментов, такие как Lite (Облегченный инструментарий) и его расширенный комплект компонентов (LECK), или в наборе инструментов ilixi.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.