50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# Application::Initialize
|
|
|
|
**命名空间**: `XCEngine::Editor`
|
|
|
|
**类型**: `method`
|
|
|
|
**源文件**: `editor/src/Application.h`
|
|
|
|
## 签名
|
|
|
|
```cpp
|
|
bool Initialize(HWND hwnd);
|
|
```
|
|
|
|
## 作用
|
|
|
|
完成当前 Editor 宿主壳的启动编排,包括日志、项目根解析、窗口渲染宿主、资源系统、`EditorContext`、脚本运行时、ImGui 和 `EditorLayer` 挂接。
|
|
|
|
## 当前实现行为
|
|
|
|
- 启动早期会先执行:
|
|
- `InstallCrashExceptionFilter()`
|
|
- `RedirectStderrToExecutableLog()`
|
|
- `ConfigureEditorLogging(exeDir)`
|
|
- 然后解析当前编辑器项目根目录,并尝试切换工作目录到该路径。
|
|
- 之后缓存主窗口句柄 `m_hwnd`,并调用 `InitializeWindowRenderer(hwnd)`。
|
|
- 窗口渲染宿主成功后,会初始化全局 `ResourceManager` 并把资源根设置到项目根目录。
|
|
- 接着按顺序初始化:
|
|
- `EditorContext`
|
|
- 脚本运行时
|
|
- ImGui session / backend / 内置图标 / `ViewportHostService`
|
|
- `EditorLayer`
|
|
- 最后清空上一帧时间戳状态并把 `m_renderReady` 设为 `true`。
|
|
|
|
## 失败路径
|
|
|
|
- 任一关键步骤失败时,当前会直接返回 `false`。
|
|
- `InitializeWindowRenderer(...)` 失败时还会弹出 Win32 `MessageBoxW` 错误框。
|
|
|
|
## 当前实现边界
|
|
|
|
- 当前启动路径默认只面向单窗口 Win32 + D3D12 宿主。
|
|
- 项目根目录由宿主启动时自动解析,不要求外部先传入项目路径。
|
|
|
|
## 相关文档
|
|
|
|
- [Application](Application.md)
|
|
- [Shutdown](Shutdown.md)
|
|
- [SwitchProject](SwitchProject.md)
|