Fui: 用于在 TTY 环境中与 Framebuffer 交互的 C 语言库
`fui` 是一个用 C 语言编写的库,用于在 tty 环境中与 framebuffer 交互,实现用户界面。它通过直接写入 framebuffer 设备,并使用图层系统进行绘制,支持绘制线条、矩形、圆,文本渲染,以及键盘和鼠标事件处理。该库还包含一个音频系统,可播放声音。文章介绍了安装方法,权限设置,并提供了示例程序,如简单的 Asteroids 游戏。
fui
fui,代表 framebuffer user interface,是一个 C 语言库,用于在 tty 环境中与 framebuffer 交互。它直接写入 framebuffer 设备,使用图层系统进行绘制。它的一些功能包括:
- 将像素值绘制到任意数量的图层,然后将这些图层组合在一起并渲染到 framebuffer。
- 用于绘制线条、矩形和圆的原始绘图函数。
- 使用位图字体进行文本渲染。
- 用于键盘和鼠标输入的事件处理(使用 libevdev),并实现了一个更通用的事件系统,可用于其他事件。
- 一个厚脸皮的音频系统,使用 alsa,目前可以播放正弦音和和弦。
安装
实际的库位于 fui
中,可以使用以下命令编译和安装:
make
sudo make install
然后可以通过在编译器标志中包含 -Lfui -l:libfui.a
来使用该库。 该库是静态链接的,因此您无需担心共享库。
权限
由于视频和输入访问都需要 root 权限,因此建议将用户添加到这些组,以避免使用 sudo 运行任何编译的程序。 您可以使用以下命令执行此操作:
sudo usermod -a -G video $USER
sudo usermod -a -G input $USER
之后您需要注销并重新登录。 如果这不起作用,重启应该可以解决问题。
示例
examples
文件夹中包含一些(目前还不太完善)示例。main.c
和 bodies.c
大致演示了库的大部分组件。在 asteroids
文件夹中,我们有一个简单的 Asteroids 游戏,它使用了声音系统。此外,在 tests
中,还使用 cmocka 实现了一些测试。
一些使用 fui 运行的程序 (来自 main.c)。
Asteroids!
关于
framebuffer user interface
资源
Stars
71 stars
Watchers
2 watching
Forks
0 forks
Releases
没有发布版本
Packages 0
没有发布软件包