1、GuiLite--宣称6000行代码解决Windows+Linux+Mac+Android+vr+嵌入式 等的跨平台窗口解决方案。Github的项目地址:https://github.com/idea4good/GuiLite
下载研究了一下,其主要思想结构是,先申请一块跟显示器(或者目标窗口)相同大小的内存,然后把图像、文字、动画等内容,像素级别的绘制到内存当中,合成一张渲染后的图像(内存)。然后返回并绘制到目标平台窗口。
这种思路是很好的,对于简单的窗口应用程序,已经够用了。但要完全支持复杂窗口还需要进一步的完善。比如预测某段文字在特定格式下需要占据绘制目标的长宽,图像窗口里面需要插入控件,相对布局,布局文件,自动换肤,绘制效率等。还有一点,图像文件、文字需要转换为点阵cpp文件也不便管理。
GuiLite让我发现linux桌面开发还有个叫framebuffer的东西(linux应用较少,孤陋寡闻了),多阅读别人的东西,还是可以学到不少东西的,有区别于X和QT等桌面应用图形框架,framebuffer是把桌面当着画布来进行处理的。把显示器桌面内存挂接到/dev/fb0当中。
调试GuiLite linux程序时发生 open(“/dev/fb