Refactor editor command state contracts into core

This commit is contained in:
2026-04-28 01:57:06 +08:00
parent cadababab5
commit 946c19f876
35 changed files with 65 additions and 66 deletions

View File

@@ -37,9 +37,9 @@ The app layer has a good directory vocabulary but enforcement is still
incomplete:
- `XCEditorCore` now limits its public app include surface to
`editor/app/Core`, `editor/app/Commands`, `editor/app/State`, and
`editor/app/Host/Interfaces`, and app/core sources now include through
explicit module roots instead of a private `editor/app` compatibility root.
`editor/app/Core` and `editor/app/Host/Interfaces`, and app/core sources now
include through 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
@@ -78,6 +78,10 @@ Completed boundary cuts:
utility-window runtime contracts accept this service view instead of
`EditorContext`, so concrete feature panels no longer depend on
`Composition/EditorContext.h`.
- Command routing and shared state contracts now live under
`editor/app/Core/Commands` and `editor/app/Core/State`. `XCEditorCore`,
`XCEditor`, and app-facing tests expose those contracts through the single
`editor/app/Core` include surface instead of separate command/state roots.
- Win32 now hands render startup a neutral
`Rendering::Host::EditorWindowRenderRuntimeSurface` value, and D3D12 no
longer includes `Platform/Win32/**` editor surface headers to obtain `HWND`.
@@ -304,12 +308,10 @@ add_library(XCEditorCore STATIC ...)
Initial contents:
- `app/Core/**`
- `app/Commands/**`
- `app/Composition/**`
- `app/Features/**`
- `app/Project/**` or `app/Services/Project/**`
- `app/Scene/**` or `app/Services/Scene/**`
- `app/State/**`
- `app/Core/UtilityWindows/**`
- `app/Core/Windowing/**`
- `app/Windowing/**` core files that do not require Win32 or D3D12
@@ -516,8 +518,8 @@ Completed cuts:
- Neutral host-facing contracts now live under `app/Host/Interfaces/`.
- `EditorWindowTransferRequests`, window screen geometry, and title-bar chrome
metrics now live under `app/Core/Windowing/`.
- `XCEditorCore` now exposes only `app/Core`, `app/Commands`, `app/State`, and
`app/Host/Interfaces` through its public usage requirements, and both
- `XCEditorCore` now exposes only `app/Core` and `app/Host/Interfaces`
through its public usage requirements, and both
`XCEditorCore` and `XCEditor` enumerate explicit module roots instead of
using `editor/app` as a compatibility include directory.
- Concrete Win32 and D3D12 host implementations now live under