Files
XCEngine/docs/api/XCEngine/Editor/UI/ImGuiSession/ImGuiSession.md

2.5 KiB
Raw Blame History

ImGuiSession

命名空间: XCEngine::Editor::UI

类型: class

源文件: editor/src/UI/ImGuiSession.h

描述: 管理编辑器的 ImGui 上下文、布局 ini 文件位置、基础字体配置和默认主题应用。

概述

ImGuiSession 负责的是 ImGui 自身的生命周期和持久化布局配置。

它当前主要做三件事:

  • 创建/销毁 ImGui context
  • 把布局 ini 文件放到 <project>/.xceditor/imgui_layout.ini
  • 配置默认字体、DPI 缩放和基础主题

当前公开方法

方法 说明
Initialize(projectPath, mainDpiScale) 创建 ImGui context并绑定项目级 ini、主题和字体。
Shutdown() 先保存布局,再销毁当前 ImGui context。
SaveSettings() 把当前布局写回磁盘。
GetIniPath() 返回当前项目绑定的 ini 路径。
SetProjectPath(projectPath) 切换到新的项目级 ini 文件,并返回磁盘上是否已有 docking 布局。

当前实现说明

  • Initialize(projectPath, mainDpiScale) 会创建 context并开启 ImGuiConfigFlags_DockingEnableConfigDpiScaleFontsConfigDpiScaleViewports
  • ini 文件当前固定落在 <project>/.xceditor/imgui_layout.ini
  • 主题配置会先应用 BaseTheme,再把 DPI 缩放钳到 1.0f4.0f
  • 字体当前优先加载 C:/Windows/Fonts/segoeui.ttf,成功时再 merge C:/Windows/Fonts/msyh.ttc 作为中文 fallback如果主字体失败则退化为单独加载 msyh.ttc,最后才回退到 ImGui 默认字体。
  • Shutdown() 会先保存设置,再销毁当前 context。
  • SaveSettings() 只在 context 存在且 ini 路径非空时生效。
  • SetProjectPath(projectPath) 会先保存当前布局,再切换 ini 路径、重新加载磁盘设置,并返回该 ini 文件里是否已经存在 [Docking][Data]
  • GetIniPath() 暴露的是当前会话实际绑定的 ini 文件路径。

当前实现边界

  • 当前字体路径写死为 Windows 字体目录。
  • 当前 ini 文件位置策略是项目局部目录,而不是全局用户目录。
  • SetProjectPath(...) 的返回值只表示磁盘上是否检测到了保存过的 docking 数据,不代表布局内容一定可用。
  • 当前主要负责会话和基础样式,不处理平台/渲染后端桥接。

相关文档