# YueGUI **Repository Path**: ThomasKingFree/YueGUI ## Basic Information - **Project Name**: YueGUI - **Description**: 一个新的轻量级GUI。高性能、抗锯齿;支持跨地区、国家语言显示;支持资源压缩;支持多并发 - **Primary Language**: C++ - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-06 - **Last Updated**: 2021-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YueGUI #### 介绍 一个新的轻量级GUI。高性能、抗锯齿;支持跨地区、国家语言显示;支持资源压缩;支持多并发 使用和阅读了多个GUI引擎源码,发现各家图形引擎的设计都存在几个我觉得很不好的地方,决定自己实现一个。 - 有的图像引擎是用C语言写的,但是UI开发往往是C++等面向对象语言,C难以实现很好地封装和继承。 - 有的图像引擎性能和抗锯齿效果都很差,功能不全,代码耦合成一大块,虽然代码量少,但是功能完整性实在太差。 - 有的图形引擎无法支持跨地区、国家显示,并且引入了矢量字库,在轻量级平台上,性能差。 写这个图形引擎就是为了解决上面三个关键问题 #### 软件架构 - 采用分层结构。从底向上依次为:rasterizer(光栅化层)、core(渲染控制层)、widgets(控件层)。MVVM为推荐的开发模式。 - 支持“运行时”裁剪,所有的功能都以组件组装的方式确定,尽量不使用编译宏控制。 - 语言采用C++,但不使用C++11之后的新增高级特性。比如推荐使用auto,但禁止使用lamda。 - 数据流入口处保证有效,后续不进行冗余的空指针校验。 - 支持无MMU单元的多task渲染。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request