checkpoint(new_editor): native d3d12 ui path
Key node 1: move main-window UI presentation onto the D3D12 render loop with native UI renderer, text system, and texture host. Key node 2: wire frame timing/FPS display, window runtime, swapchain presentation, and native screenshot capture around the new path. Key node 3: carry editor shell/workspace/viewport/panel interaction updates needed by the new renderer and detached window flow. Key node 4: pump async resource loads and scene bridge follow-up needed for scene content visibility in new_editor.
This commit is contained in:
@@ -65,14 +65,13 @@ UIEditorViewportShellRequest ResolveUIEditorViewportShellRequest(
|
||||
|
||||
UIEditorViewportShellFrame UpdateUIEditorViewportShell(
|
||||
UIEditorViewportShellState& state,
|
||||
const ::XCEngine::UI::UIRect& bounds,
|
||||
const UIEditorViewportShellRequest& request,
|
||||
const UIEditorViewportShellModel& model,
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents,
|
||||
const Widgets::UIEditorViewportSlotMetrics& metrics,
|
||||
const UIEditorViewportInputBridgeRequest& inputRequest) {
|
||||
UIEditorViewportShellFrame frame = {};
|
||||
frame.slotLayout = BuildViewportShellLayout(bounds, model.spec, model.frame, metrics);
|
||||
frame.requestedViewportSize = frame.slotLayout.requestedSurfaceSize;
|
||||
frame.slotLayout = request.slotLayout;
|
||||
frame.requestedViewportSize = request.requestedViewportSize;
|
||||
frame.inputFrame = UpdateUIEditorViewportInputBridge(
|
||||
state.inputBridgeState,
|
||||
frame.slotLayout.bounds,
|
||||
@@ -88,4 +87,21 @@ UIEditorViewportShellFrame UpdateUIEditorViewportShell(
|
||||
return frame;
|
||||
}
|
||||
|
||||
UIEditorViewportShellFrame UpdateUIEditorViewportShell(
|
||||
UIEditorViewportShellState& state,
|
||||
const ::XCEngine::UI::UIRect& bounds,
|
||||
const UIEditorViewportShellModel& model,
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents,
|
||||
const Widgets::UIEditorViewportSlotMetrics& metrics,
|
||||
const UIEditorViewportInputBridgeRequest& inputRequest) {
|
||||
const UIEditorViewportShellRequest request =
|
||||
ResolveUIEditorViewportShellRequest(bounds, model.spec, metrics);
|
||||
return UpdateUIEditorViewportShell(
|
||||
state,
|
||||
request,
|
||||
model,
|
||||
inputEvents,
|
||||
inputRequest);
|
||||
}
|
||||
|
||||
} // namespace XCEngine::UI::Editor
|
||||
|
||||
Reference in New Issue
Block a user