refactor(editor): neutralize render surface handoff

This commit is contained in:
2026-04-27 17:17:29 +08:00
parent 2a7f6d0b60
commit 0d97cb5e51
7 changed files with 44 additions and 59 deletions

View File

@@ -41,7 +41,8 @@ incomplete:
- Feature panels no longer use `Composition/EditorContext.h` directly, but the
app include surface still needs to be narrowed before this boundary is
build-enforced.
- Win32 and D3D12 currently know about each other through concrete headers.
- The direct Win32/D3D12 render-surface cross-include has been cut; broader
host include-surface cleanup remains.
- App-side tests exist but are not consistently wired into CMake; some are
stale and reference removed headers.
@@ -63,6 +64,9 @@ 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`.
- Win32 now hands render startup a neutral
`Rendering::Host::EditorWindowRenderRuntimeSurface` value, and D3D12 no
longer includes `Platform/Win32/**` editor surface headers to obtain `HWND`.
The root issue is not the existence of a single executable target by itself.
The root issue is that shared app contracts are stored inside concrete layer
@@ -377,6 +381,17 @@ app/Host/D3D12/
Then replace concrete Win32/D3D12 cross-includes with a neutral surface or
factory contract.
Completed first cut:
- The old `Win32EditorWindowRenderRuntimeSurface` concrete adapter was removed.
- `EditorWindowRenderRuntimeSurface` is now a value contract in
`Rendering/Host/EditorWindowRenderRuntime.h`.
- Win32 fills that neutral contract during native surface capture; D3D12 reads
the native handle from the contract instead of including a Win32 editor
windowing header.
- Remaining work in this phase is to move/rename host interface directories
and continue narrowing CMake include surfaces.
## Phase 6: Documentation Update
Update `editor/AGENTS.md` after each completed boundary cut.