DirectFB2项目为Linux嵌入式系统带回了DirectFB图形库

原文链接:DirectFB2 project brings back DirectFB graphics library for Linux embedded systems 由Jean-Luc Aufranc撰写。
本文共计854字,预计阅读2分钟

DirectFB2 是一个新的开源项目,它可以直接将DirectFB重新恢复使用,而DirectFB则是一个针对基于 Linux 嵌入式系统优化的图形库,几年前在2D类的用户界面上很流行,但后来就逐渐淡出人们的生活了。此次的 DirectFB2 尝试保留了原始的 DirectFB 后端、同时添加了新功能,例如 Vulkan 和 OpenGL ES 等现有的 3D API。

我个人在 2008-2009 年的时候就使用过它,同时还使用了 Sigma Designs 媒体处理器,该处理器依赖 DirectFB 库来渲染 IPTV 盒子、卡拉 OK 机等设备的用户界面。我还记得这迫使我从 MicroWindows + Framebuffer 解决方案做了切换,虽然如此但我觉得 DirectFB API 还是很容易使用的,并且帮助我们开发出更好看的用户界面。

DirectFB2
DirectFB2

我在查看 FOSDEM 2022 时间表和 2 月 5 日由 Nicolas Caramelli 介绍的《回到 DirectFB!DirectFB 与 DirectFB2 复兴》的相关文章时,我还看到了一些细节和一些主要的变化。包括有 Meson 构建系统、纯 C 实现和源代码的模块化。

DirectFB2 库 (libdirectfb.so) 可以通过以下两种方式任何一种访问底层显示来驱动程序:

  • 使用 so 插件处理的 Linux Framebuffer 接口 (/dev/fb0)
  • 使用 so 插件处理的 KMS/DRM 接口 (/dev/dri/card0)

硬件加速的图形渲染也可以使用 GFX 驱动模块的架构来实现。只要平台支持。Nicolas 说,核心库其实非常轻量,没有任何外部依赖,而且能提供基本的字体、图像和视频渲染支持,正如上面显示的 DirectFB 示例所示。

除了基本的支持外,DirectFB2 还可以通过 DirectFB-media 包添加 FreeType 库、使用 libpng 或 jpeg 库渲染图像、使用 FFmpeg 或 GS treamer 库渲染视频等来进一步增强。另一个新的发展是通过 OpenGL (ES) 或 Vulkan 渲染来支持 3D 图形,而 2D 图形渲染可以直接通过 Cairo 或 Evas 库处理。DirectFB(2) 还可以通过控制台接口 (/dev/tty0)、事件设备接口 (/dev/input/event0/1) 、PS/2 鼠标接口 ( /dev/psaux) ,来处理用户输入(例如键盘和鼠标) 。

DirectFB2的OpenGL演示
DirectFB2的OpenGL演示

你们可以在Github存储库和文档中查找到更多的信息和示例程序,例如 dfbterm 终端仿真器、各种 DirectFB 示例、测试或基准测试,以及兼容工具包,比如 LiTE(轻量级工具包启动器)及其扩展组件工具包(LeCK )、ilixi 工具包等。

分享这篇文章
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论