fix(new_editor): reduce live resize jitter
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
#include "Platform/Win32/EditorWindowFrameDriver.h"
|
||||
|
||||
#include "Platform/Win32/EditorWindowChromeController.h"
|
||||
#include "Platform/Win32/EditorWindow.h"
|
||||
|
||||
namespace XCEngine::UI::Editor::App {
|
||||
|
||||
EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveFrame(
|
||||
EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveFrameInternal(
|
||||
EditorWindow& window,
|
||||
EditorContext& editorContext,
|
||||
bool globalTabDragActive) {
|
||||
bool globalTabDragActive,
|
||||
bool requestSkipNextSteadyStateFrame) {
|
||||
if (!window.IsRenderReady() ||
|
||||
window.GetHwnd() == nullptr ||
|
||||
window.IsClosing()) {
|
||||
@@ -20,8 +22,25 @@ EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveFrame(
|
||||
hwnd != nullptr && IsWindow(hwnd)) {
|
||||
ValidateRect(hwnd, nullptr);
|
||||
}
|
||||
if (requestSkipNextSteadyStateFrame) {
|
||||
window.m_chromeController->RequestSkipNextSteadyStateFrame();
|
||||
}
|
||||
|
||||
return transferRequests;
|
||||
}
|
||||
|
||||
EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveFrame(
|
||||
EditorWindow& window,
|
||||
EditorContext& editorContext,
|
||||
bool globalTabDragActive) {
|
||||
return DriveFrameInternal(window, editorContext, globalTabDragActive, false);
|
||||
}
|
||||
|
||||
EditorWindowFrameTransferRequests EditorWindowFrameDriver::DriveImmediateFrame(
|
||||
EditorWindow& window,
|
||||
EditorContext& editorContext,
|
||||
bool globalTabDragActive) {
|
||||
return DriveFrameInternal(window, editorContext, globalTabDragActive, true);
|
||||
}
|
||||
|
||||
} // namespace XCEngine::UI::Editor::App
|
||||
|
||||
Reference in New Issue
Block a user