refactor(new_editor): centralize win32 frame execution

This commit is contained in:
2026-04-22 14:37:25 +08:00
parent 4a42b757c7
commit b44f5ca9fc
10 changed files with 114 additions and 44 deletions

View File

@@ -0,0 +1,29 @@
#include "Platform/Win32/EditorWindowFrameDriver.h"
#include "Platform/Win32/EditorWindow.h"
namespace XCEngine::UI::Editor::App {
EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveFrame(
EditorWindow& window,
EditorContext& editorContext,
bool globalTabDragActive) {
if (!window.IsRenderReady() ||
window.GetHwnd() == nullptr ||
window.IsClosing()) {
return {};
}
(void)window.ConsumePendingFrameRequestReasons();
EditorWindowFrameTransferRequests transferRequests =
window.RenderFrame(editorContext, globalTabDragActive);
if (const HWND hwnd = window.GetHwnd();
hwnd != nullptr && IsWindow(hwnd)) {
ValidateRect(hwnd, nullptr);
}
return transferRequests;
}
} // namespace XCEngine::UI::Editor::App