扫一扫分享
RmlUi使用html和css写界面,使用C++写业务逻辑,对比Sciter来说,RmlUi没有JavaScript解析引擎,我觉得这并不是什么大问题,使用C++操作界面上的元素开发体验也非常好,这得益于现代C++的灵活强大,也得益于RmlUi为开发者提供了大量、易用的api。
RmlUi可以做到完整的静态连接,也就是说能生成一个独立可执行的exe文件,而且这个文件足够小,最小2M左右,这比Sciter要小多了,但比ImGui要大(ImGui可以做到低于1M)。
免费版Sciter是没办法静态连接的,除非你花钱买了它的源码
RmlUi也可以认为是一个即时渲染的GUI框架(实际上不是),所以ImGui的缺点它都有:每时每刻都在执行渲染工作,每时每刻都在消耗CPU和GPU资源。Sciter就不会这样
和ImGui相似,RmlUi也支持多个渲染引擎:OpenGL、SDL、Vulcan(目前正在开发中)等,渲染引擎的封装工作是在RmlUi的Backend模块中完成,CMake编译时默认使用的是OpenGL引擎。
用户新建项目时要源码级复用RmlUi提供的Shell和Backend模块。Backend模块我们刚刚说了,那为什么要源码级复用呢?这是因为RmlUi的作者担心你要渲染一些特殊的东西,它如果把这个模块封装到框架内部,那么你就很难自由的做这些工作了。
RmlUi 旨在支持 HTML 和 CSS 中最常见和最熟悉的功能,同时保持库的轻便和高性能。我们的目标不是完全符合 CSS 或 HTML,尤其是当它与亮度和性能发生冲突时。通常希望用户专门为 RmlUi 编写文档,但任何来自网页设计的经验和技能都应该是可以转移的。
RmlUi 支持大部分 CSS2 以及一些 CSS3 功能,例如
手机预览