Refine editor host boundary
This commit is contained in:
@@ -38,9 +38,10 @@ incomplete:
|
||||
|
||||
- `XCEditorCore` now limits its public app include surface to
|
||||
`editor/app/Core`, `editor/app/Commands`, `editor/app/State`, and
|
||||
`editor/app/Host`, and app/core sources now include through explicit module
|
||||
roots instead of a private `editor/app` compatibility root. The app has not
|
||||
yet converged on the final directory names.
|
||||
`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`.
|
||||
- Feature panels no longer use `Composition/EditorContext.h` directly, and
|
||||
the first app-core test target now exercises `XCEditorCore` outside the
|
||||
executable host.
|
||||
@@ -72,6 +73,8 @@ Completed boundary cuts:
|
||||
`editor/app/Host/Interfaces`, including editor window host interfaces,
|
||||
render-runtime contracts, texture/viewport host contracts, pointer-capture
|
||||
contracts, and system interaction service interfaces.
|
||||
- Concrete Win32 and D3D12 host implementations now live under
|
||||
`editor/app/Host/Win32` and `editor/app/Host/D3D12`.
|
||||
- Shared window screen geometry, chrome metrics, and frame transfer requests
|
||||
now live under `editor/app/Core/Windowing`, and
|
||||
`XCEditorCore` no longer exports the whole `editor/app` root as a public
|
||||
@@ -80,7 +83,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`, and `app/Platform/Win32`.
|
||||
`app/Support`, `app/Bootstrap`, `app/Host/Interfaces`, `app/Host/Win32`,
|
||||
and `app/Host/D3D12`.
|
||||
- `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
|
||||
@@ -92,9 +96,8 @@ directories, and CMake exposed the whole `editor/app` include root through
|
||||
`XCEditorCore` usage requirements. The public include surface has now been
|
||||
narrowed, and internal source compatibility with the private app root has now
|
||||
been removed. The first app-core test target now exercises the narrowed
|
||||
surface. Remaining work is to continue converging host code on the target
|
||||
directory shape and to restore additional stale app feature/viewport tests
|
||||
without widening the include surface.
|
||||
surface. Remaining work is to restore additional stale app feature/viewport
|
||||
tests without widening the include surface.
|
||||
|
||||
## Target Directory Shape
|
||||
|
||||
@@ -276,8 +279,8 @@ Keep in `XCEditor` executable:
|
||||
- `app/main.cpp`
|
||||
- `app/Bootstrap/Application.*`
|
||||
- `app/Bootstrap/EditorApp.rc`
|
||||
- `app/Platform/Win32/**`
|
||||
- `app/Rendering/D3D12/**`
|
||||
- `app/Host/Win32/**`
|
||||
- `app/Host/D3D12/**`
|
||||
- any concrete host glue that includes `windows.h`
|
||||
|
||||
`XCEditor` links `XCEditorCore`, `XCUIEditor`, and concrete platform/rendering
|
||||
@@ -317,6 +320,7 @@ Remaining stale test references to fix or remove in later cuts:
|
||||
|
||||
- `Ports/SystemInteractionPort.h`
|
||||
- `Rendering/Viewport/ViewportRenderTargetInternal.h`
|
||||
- `app/Platform/Win32/WindowManager/TabDragDropTarget.h`
|
||||
|
||||
The test target is part of the architecture. If app core cannot be tested
|
||||
without starting the executable host, the boundary is not real.
|
||||
@@ -418,11 +422,12 @@ Completed cuts:
|
||||
- `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` through its public usage requirements, and both `XCEditorCore`
|
||||
and `XCEditor` enumerate explicit private module roots instead of using
|
||||
`editor/app` as a compatibility include directory.
|
||||
- Remaining work in this phase is to continue converging concrete host code on
|
||||
the `app/Host/Win32` and `app/Host/D3D12` directory shape.
|
||||
`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
|
||||
`app/Host/Win32` and `app/Host/D3D12`; `XCEditor` consumes those roots
|
||||
privately, while `XCEditorCore` only sees `app/Host/Interfaces`.
|
||||
|
||||
## Phase 6: Documentation Update
|
||||
|
||||
|
||||
Reference in New Issue
Block a user