| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Dear ImGui 的 C++23 模块化封装 — import 即用 · 跨平台 · 特性可插拔
| mcpp 构建工具 · 包索引 mcpp-index · Dear ImGui 上游 · Issues · Releases |
|---|
mcpp new myapp --template imgui && cd myapp && mcpp run # 窗口直接出现
# 模板随库分发、版本自动对齐:
# mcpp new --list-templates imgui # 列出库提供的模板
# mcpp new ide --template imgui:docking # IDE 式停靠布局(docking-full)或在已有项目中手动接入:
[dependencies.ocornut]
imgui = { version = "1.92.8", features = ["app"] }import imgui.core;
import imgui.app;
int main() {
return ImGui::App::run([] {
ImGui::Begin("hello");
ImGui::TextUnformatted("mcpp + imgui");
ImGui::End();
});
}| 模块 | 说明 |
|---|---|
| imgui.core | Dear ImGui 核心:context / frame / widgets / draw-data |
| imgui.app | Tier-0 facade:平台默认后端 + 一行帧循环 |
| imgui.backend | 后端契约:BackendApi concept + 共享类型(GlConfig/Error/FbSize) |
| imgui.backend.glfw_opengl3 | GLFW + OpenGL3 窗口后端(单一 Backend 类型) |
| imgui.backend.headless | 无显示后端:同一业务循环跑 CI / 逻辑测试 |
后端实现模块不 re-export imgui.core,消费者需各自显式 import;换后端只改 import 行与一行 using Backend = ...;。
| Feature | 说明 |
|---|---|
| docking | 主窗口内面板停靠(Wayland 安全) |
| viewports | 面板拖出主窗口分离为独立 OS 窗口(X11 / Windows / macOS) |
| docking-full | 组合糖 = ["docking", "viewports"],完整 docking 体验 |
[dependencies.ocornut]
imgui = { version = "1.92.8", features = ["docking-full", "app"] }docking/viewports 源码来自上游 docking tag(compat.imgui 1.92.8-docking,主线超集——特性关闭时行为与主线一致)。需 mcpp ≥ 0.0.47。
| 示例 | 内容 |
|---|---|
| examples/app_minimal | facade 三行出窗口 |
| examples/docking | IDE 式四分屏 + 面板分离为独立 OS 窗口 |
| examples/minimal_window | 显式后端 API 的最小窗口(带诊断) |
| examples/glfw_opengl3 | 显式后端的完整事件循环 |
| examples/basic | headless 核心 API(CI 可跑) |
cd examples/docking && mcpp run包不固定工具链(mcpp 解析环境默认,如 Linux glibc gcc);GL/GLX 运行时由生态包 compat.glx-runtime 透传闭合,不打包驱动。解析结果可用 mcpp why / mcpp self doctor 查看。
Note
早期版本,接口可能调整。问题与想法欢迎提 issue。
封装代码 MIT;Dear ImGui 本体 MIT(经 compat.imgui 提供)。
| Back | FazBrowse Home | New Git URL |