linux directfb DirectFB2项目为Linux嵌入式系统带回了DirectFB图形库
DirectFB2 是一个新的开源项目,它可以直接将DirectFB重新恢复使用,而DirectFB则是一个针对基于 Linux 嵌入式系统优化的图形库,几年前在2D类的用户界面上很流行,但后来就逐渐淡出人们的生活了。此次的 DirectFB2 尝试保留了原始的 DirectFB 后端、同时添加了新功能,例如 Vulkan 和 OpenGL ES 等现有的 3D API。
我个人在 2008-2009 年的时候就使用过它,同时还使用了 Sigma Designs 媒体处理器,该处理器依赖 DirectFB 库来渲染 IPTV 盒子、卡拉 OK 机等设备的用户界面。我还记得这迫使我从 MicroWindows + Framebuffer 解决方案做了切换,虽然如此但我觉得 DirectFB API 还是很容易使用的,并且帮助我们开发出更好看的用户界面。
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演示
你们可以在Github存储库和文档中查找到更多的信息和示例程序,例如 dfbterm 终端仿真器、各种 DirectFB 示例、测试或基准测试,以及兼容工具包,比如 LiTE(轻量级工具包启动器)及其扩展组件工具包(LeCK )、ilixi 工具包等。
相关推荐
-
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”2025-02-26 00:38:21 -
php之多级目录下查找文件中是否含有某个字符串功能实现2025-02-26 00:36:35
-
mysql 启动不了1067错误如何解决?2025-02-26 00:33:31
-
MySQL简单INSERT超慢原因排查2025-02-26 00:22:42
-
mysql分布式数据库的主要构架是什么?2025-02-26 00:06:23