您现在的位置是:首页 > 文章详情

Fenster - 最精简的跨平台 GUI 库

日期:2025-08-26点击:2

Fenster /ˈfɛnstɐ/——德语中“window”的意思。这个库提供了最简洁、最实用的跨平台 2D 画布显示方式。只需几行代码,你就能实现跨平台的键盘/鼠标输入和音频播放。

特点:

  • 具有指定大小和标题的单一应用程序窗口。
  • 应用程序生命周期和系统事件均自动处理。
  • 最小 24 位 RGB 帧缓冲区。
  • 跨平台键盘事件(键码)。
  • 跨平台鼠标事件(X/Y + 鼠标点击)。
  • 跨平台计时器具有稳定的 FPS 速率。
  • 跨平台音频播放(WinMM、CoreAudio、ALSA)。
  • 简单的轮询 API,无需回调或多线程(如 Arduino/Processing)。
  • 一个约 300LOC 的 C99 头文件,易于理解和扩展。
  • Go 绑定(import "github.com/zserge/fenster",参见 godoc
  • Zig 绑定(参见 examples/minimal-zig
  • Lua 绑定(参见 https://github.com/jonasgeiler/lua-fenster
  • 可以运行 Doom

示例

 // main.c #include "fenster.h" #define W 320 #define H 240 int main() { uint32_t buf[W * H]; struct fenster f = { .title = "hello", .width = W, .height = H, .buf = buf }; fenster_open(&f); while (fenster_loop(&f) == 0) { for (int i = 0; i < W; i++) { for (int j = 0; j < H; j++) { fenster_pixel(&f, i, j) = rand(); } } } fenster_close(&f); return 0; } 

编译并运行:

 # Linux cc main.c -lX11 -lasound -o main && ./main # macOS cc main.c -framework Cocoa -framework AudioToolbox -o main && ./main # windows cc main.c -lgdi32 -lwinmm -o main.exe && main.exe 
原文链接:https://www.oschina.net/p/fenster
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章