Refactor editor host resource boundary

This commit is contained in:
2026-04-27 23:18:04 +08:00
parent 87df14f47b
commit 603d003684
28 changed files with 447 additions and 228 deletions

View File

@@ -42,6 +42,11 @@ incomplete:
explicit module roots instead of a private `editor/app` compatibility root.
Concrete host code has converged under `editor/app/Host/Win32` and
`editor/app/Host/D3D12`.
- Native editor resources now cross the app-core boundary through a neutral
`EditorHostResourceService` contract under `editor/app/Host/Interfaces`.
`XCEditorCore` no longer consumes `app/Bootstrap` or Win32 resource helper
code to load built-in PNGs, title-bar branding, or executable-relative
capture output paths.
- Feature panels no longer use `Composition/EditorContext.h` directly. The
app-core and app feature/viewport test targets now exercise `XCEditorCore`
outside the executable host.
@@ -81,8 +86,8 @@ Completed boundary cuts:
`XCEditorCore` and `XCEditor`. App implementation files now include through
explicit module roots such as `app/Composition`, `app/Features`,
`app/Windowing`, `app/Rendering`, `app/Scene`, `app/Services`,
`app/Support`, `app/Bootstrap`, `app/Host/Interfaces`, `app/Host/Win32`,
and `app/Host/D3D12`.
`app/Support`, `app/Host/Interfaces`, `app/Host/Win32`, and
`app/Host/D3D12`; only executable-host code consumes `app/Bootstrap`.
- `editor_app_core_tests` now links `XCEditorCore` directly and uses explicit
app module include roots. Its initial suite covers host command routing,
project runtime, shell asset validation, project browser model, hierarchy
@@ -448,6 +453,12 @@ Completed cuts:
- Concrete Win32 and D3D12 host implementations now live under
`app/Host/Win32` and `app/Host/D3D12`; `XCEditor` consumes those roots
privately, while `XCEditorCore` only sees `app/Host/Interfaces`.
- Native PNG resource lookup and executable-directory discovery now go through
`Host/Interfaces/EditorHostResourceService.h`. The concrete
`Host/Win32/Resources/Win32EditorResourceService.*` owns `EditorResources.h`,
Win32 resource APIs, and the mapping from product resource IDs to built-in
editor icon requests, so `XCEditorCore` no longer needs `app/Bootstrap` as a
private include root for resource loading.
## Phase 6: Documentation Update