Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

XRGUI logo

XRGUI

面向高性能桌面渲染应用的 C++23 保留式 GUI 库

快速上手 · 运行展示 · 使用指南 · 对比与路线图

C++23 Vulkan Windows MSVC License

XRGUI showcase startup screen

XRGUI(mo_yanXi's Retained-mode GUI)是一个实验性的 C++23 模块化保留式 GUI 库。它不试图成为 Qt、wxWidgets 或 GTK 的通用替代品,而是面向高性能桌面程序、渲染引擎、可视化工具和复杂内部工具:把保留式元素树、自动布局、C++ 类型化样式、异步任务和 Vulkan 绘制组织成可嵌入宿主渲染管线的 UI 组件。

当前实际推荐路径是 Windows + 最新 MSVC + Vulkan;默认接入层提供 GLFW + Vulkan 独立应用封装。

为什么关注 XRGUI

复杂 UI 更结构化
保留式元素树适合长期存在、层级复杂、需要自动布局和异步更新的工具界面,比每帧重建全部关系的 immediate-mode 写法更容易维护。
贴近渲染管线
默认后端直接服务 Vulkan Image、抽象绘制指令、Compute Shader 解析、后处理和合成器,更适合嵌入自有 renderer。
C++ 类型化布局与样式
样式树、Palette、布局策略和 Cell 元数据都在 C++ 内表达,减少外部样式表解析、字符串选择器和运行时协议成本。
线程与异步优先
GUI 可独立线程运行;输入、native 通信、元素异步任务、Action 队列和数据流系统已经纳入架构。

XRGUI 更适合:

  • Vulkan 工具、渲染编辑器、可视化分析器和自有引擎 UI。
  • 需要持久元素树、自动布局、状态化样式和异步任务的复杂内部工具。
  • 希望 UI 输出到宿主渲染附件,而不是由 GUI 框架接管窗口和主循环的项目。

XRGUI 暂时不适合:

  • 需要 Qt 级平台控件、可访问性、国际化和跨平台生态的传统桌面产品。
  • 只想快速嵌入轻量调试面板、且不需要复杂持久 UI 结构的项目;这类场景 Dear ImGui 仍然更直接。

快速运行

git submodule update --init --recursive xmake quickstart

quickstart 会配置 MSVC debug 构建,按需生成 shader/icon,运行 xmake doctor,构建并启动最小示例 xrgui.hello

只检查环境:

xmake doctor

运行完整 showcase:

xmake -b xrgui.example xmake run xrgui.example

运行单元测试:

xmake -b xrgui.tests xmake run xrgui.tests

能力速览

table and collapser animationtext input and rich text animationviewport animation
Table / CollapserText Input / Rich TextViewport / MSDF
  • 布局:序列、表格、网格、flex-wrap、缩放栈、split pane、scroll pane、collapser 等。
  • 控件:按钮、选择按钮、翻板、进度条、拖动条、菜单、复选框、图像框、标签、文本输入、拾色器、文件选择等。
  • 内容展示:富文本、Markdown、CSV 表格、图片、viewport 和样条线示例。
  • 渲染:抽象图元、批处理、MSDF 字体、遮罩、后处理和合成器路径。

更多截图和动图见 运行展示

文档入口

文档内容
快速上手最短运行路径和常见启动错误
GUI 使用指南默认应用、元素创建、布局、控件、事件和 native 通信
运行展示截图和动画
项目介绍项目定位、模块划分、源码入口
构建与开发说明环境、手动构建、生成资产、目标和依赖
布局速查布局容器使用速查
富文本指南富文本 token 语法
绘制流程GUI 绘制数据流概要
技术比较与路线图GUI 库横向对比、优势短板和发展建议

API 语义和实现细节优先写在源码中的 /** */ Doxygen 注释里。文档与实际代码冲突时,以当前代码和示例为准。

状态

XRGUI 仍处于实验阶段,API 会继续变化。当前目标不是追求“比 Qt 更全”,而是先成为 高性能渲染应用中的保留式 GUI 选择:比 immediate-mode 更适合复杂持久 UI,比 HTML/CSS 式运行时样式更贴近 C++ 类型系统,比完整桌面框架更容易嵌入自有 Vulkan 管线。

关于 About

一个轻量级的保留式GUI组件
computer-graphicscppcpp-librarycpp-modulescpp23guimesh-shaderrendererretained-mode-guivulkanxmake

语言 Languages

C++95.6%
Slang2.6%
Python1.0%
Xmake0.7%
C0.1%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
333
Total Commits
峰值: 37次/周
Less
More

核心贡献者 Contributors