Fenster - 最精简的跨平台 GUI 库
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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Firefox 带来 PWA 实验性实现
Moziilla 宣布为 Firefox Windows 用户在 142 版本中带来一个新的实验性功能:渐进式 Web 应用(PWA)。该功能自 2018 年 Chrome 70 版本以来,一直就存在于桌面版 Chrome 中。 PWA 在 Firefox 中的发展历程相当坎坷,早在 Firefox 73(Nightly)时期,Mozilla 就尝试过一个名为 “Site-Specific Browsers(SSB)” 的 PWA 实验性实现,但这一功能从未完全开发完成,并在 2021 年 1 月被 Mozilla 移除。 当时,Mozilla 解释说,该功能存在 “多个已知问题”,并且保留它会占用 Firefox 团队在漏洞排查上的时间。 今年 3 月,Mozilla 发布了 Firefox Nightly 141 版本,重新加入了这一功能,并将其命名为 “Taskbar Tabs”。 Firefox 产品经理 David Rubino 解释说,这一新的实现方式在设计上有所不同,Web 应用将保留 Firefox 的主要工具栏,包括地址栏、扩展程序和书签,以确保用户仍然感觉自己是在浏...
- 下一篇
微软旗下开源文档数据库 DocumentDB 加入 Linux 基金会
DocumentDB 是微软基于 PostgreSQL 构建的兼容 MongoDB 的文档数据库,目前已用于支持基于 vCore 的 Azure Cosmos DB for MongoDB 实例。今年年初,微软开源了 DocumentDB,因为它相信一个完全开源、兼容 MongoDB 的文档数据库能够实现。 出乎所有人的意料,微软竟然以最为宽松的 MIT 许可证将其开源,该许可证允许开发者和组织将其无限制地集成到他们的解决方案中。DocumentDB 项目开源一周内,就获得了 1000 个 GitHub 星标、近 50 个 fork 以及多个 Pull 请求。 DocumentDB 因其原生实现的面向文档的 NoSQL 数据库而广受开发者欢迎,它基于 PostgreSQL 框架,支持对 BSON(二进制 JSON)数据类型进行 CRUD(创建、读取、更新、删除)操作。此外,DocumentDB 还支持全文搜索、地理空间查询和矢量搜索。 今天,微软宣布DocumentDB 将成为 Linux 基金会的一部分。微软希望此举能够为 NoSQL 数据库创建一个开放标准。微软表示,它致力于与 M...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Docker安装Oracle12C,快速搭建Oracle学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Linux系统CentOS6、CentOS7手动修改IP地址