From 6a1552505ec226794f793b43557a7a3cc543cbe4 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sun, 18 Jun 2023 21:22:24 +0300 Subject: [PATCH] Fix sluggish EditorViewport camera movement with high DPI Flooring the mouse delta values seems to drop slight movements in viewport when screen DPI is high. --- Source/Editor/Viewport/EditorViewport.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs index f56370352..b4fb8f8f1 100644 --- a/Source/Editor/Viewport/EditorViewport.cs +++ b/Source/Editor/Viewport/EditorViewport.cs @@ -1168,14 +1168,15 @@ namespace FlaxEditor.Viewport { offset = Float2.Zero; } - offset.X = offset.X > 0 ? Mathf.Floor(offset.X) : Mathf.Ceil(offset.X); - offset.Y = offset.Y > 0 ? Mathf.Floor(offset.Y) : Mathf.Ceil(offset.Y); - _mouseDelta = offset / size; - _mouseDelta.Y *= size.Y / size.X; var mouseDelta = Float2.Zero; if (_useMouseFiltering) { + offset.X = offset.X > 0 ? Mathf.Floor(offset.X) : Mathf.Ceil(offset.X); + offset.Y = offset.Y > 0 ? Mathf.Floor(offset.Y) : Mathf.Ceil(offset.Y); + _mouseDelta = offset / size; + _mouseDelta.Y *= size.Y / size.X; + // Update delta filtering buffer _deltaFilteringBuffer[_deltaFilteringStep] = _mouseDelta; _deltaFilteringStep++; @@ -1192,6 +1193,8 @@ namespace FlaxEditor.Viewport } else { + _mouseDelta = offset / size; + _mouseDelta.Y *= size.Y / size.X; mouseDelta = _mouseDelta; }