Gitee 上有个项目叫 GUILite,4 千行 C++ 代码。
单一头文件,0 依赖,能在 STM32 单片机上跑 3D 动画——24MHz 主频、29KB ROM、9KB 内存就够了。
这个大小什么概念?
现在随便一个前端框架打包完都几百 KB 起步,GUILite 整个库才 29KB,还能渲染 3D 波形、粒子效果、甚至超级马里奥。
单片机上的 3D
翻 GuiLite 的 Demo 案例,发现很多STM32的示例。
Hello3D、HelloWave、HelloParticle。。。十几个 Demo 全在单片机上跑,GIF 录屏看着挺流畅。
有个 3Ddonut 是旋转的甜甜圈,另一个 HelloMolecule 是分子运动模拟——你很难相信这是在一块几十块钱的开发板上渲染出来的。
这些 Demo 的 UI 代码大多只有 100 行左右。
GuiLite 把底层渲染逻辑全封好了,只用调 API 画界面。
全平台是真的全
Windows、Linux、macOS、iOS、Android、WatchOS。。。甚至 Windows Mixed Reality 和 Web 都支持。
有个 HostMonitor 的 Demo,同一套代码编译后能在所有这些平台上跑——Windows 桌面、Mac、Android 手机、Linux 服务器、iPhone、VR 头显,UI 长得一模一样。
更野的是它能跟第三方 GUI 框架共存。
你现在用 Qt 或 MFC 项目不用推倒重来,直接把 GuiLite.h 扔进去就能用,在 Qt 窗口里嵌个 GuiLite 渲染的 3D 控件 ,集成进来成本极低。
工控场景
GuiLite 的 README 里专门提了 IoT 和云端监控。
工控项目经常要在嵌入式设备上做个简单 HMI,以前要么用厂商配套的工具(贵且封闭),要么自己手撸像素级绘图(累)。
GuiLite 给了第三条路——开源、轻量、跨平台,关键是真能在资源受限的硬件上跑起来。
怎么上手
Gitee 仓库是 idea4good/GuiLite,代码示例在 GuiLiteSamples。
文档写得比较全,从如何使用到如何布局 UI到如何换肤都有。
先编译库,再跑 HelloXXX 实例,然后读那 100 行 UIcode.cpp,最后扩展自己的 GUI。
如果你只是想快速看看效果,项目提供了 Docker 镜像,一行命令就能跑:
sudo docker run -it --privileged -v /dev:/dev-share idea4good/gui-lite:latest bash /run.sh还有个 GuiLitePreviewer 工具,所见即所得地拖拽布局,不用手写坐标。
4 千行代码能做到什么程度?
24MHz 的 STM32 能跑 3D,9KB 内存能渲染粒子效果。
很多时候不是硬件不够,是软件太臃肿了。
当然,GuiLite 也不是万能的——复杂交互、大量动画、高分辨率场景它肯定扛不住。但对于工控 HMI、IoT 设备界面、嵌入式监控这些场景,够了。
热门跟贴