Browse Source

Improved scrolling speed and checker background scaling

flabbet 8 months ago
parent
commit
bdde89260b

+ 3 - 2
src/PixiEditor.Zoombox/Zoombox.cs

@@ -158,6 +158,7 @@ public partial class Zoombox : ContentControl, INotifyPropertyChanged
     }
     }
 
 
     internal const double ScaleFactor = 1.09050773267; //2^(1/8)
     internal const double ScaleFactor = 1.09050773267; //2^(1/8)
+    internal const double ScrollStep = 0.5;
 
 
     public VecD ToScreenSpace(VecD p)
     public VecD ToScreenSpace(VecD p)
     {
     {
@@ -429,10 +430,10 @@ public partial class Zoombox : ContentControl, INotifyPropertyChanged
 
 
     private void OnScroll(object? sender, PointerWheelEventArgs e)
     private void OnScroll(object? sender, PointerWheelEventArgs e)
     {
     {
-        double abs = Math.Abs(e.Delta.Y / 100.0);
+        double abs = Math.Abs(e.Delta.Y / ScrollStep);
         for (int i = 0; i < abs; i++)
         for (int i = 0; i < abs; i++)
         {
         {
-            ZoomInto(ToVecD(e.GetPosition(this)), e.Delta.Y / 100.0);
+            ZoomInto(ToVecD(e.GetPosition(this)), e.Delta.Y / ScrollStep);
         }
         }
     }
     }
 
 

+ 1 - 1
src/PixiEditor/Helpers/Converters/ZoomToViewportConverter.cs

@@ -19,7 +19,7 @@ internal class ZoomToViewportConverter
 
 
     public static double ZoomToViewport(double factor, double scale)
     public static double ZoomToViewport(double factor, double scale)
     {
     {
-        double newSize = Math.Clamp(factor / scale, 2, 9999);
+        double newSize = Math.Clamp(factor / scale, 1, 9999);
 
 
         double log = Math.Log(newSize, 2);
         double log = Math.Log(newSize, 2);
         //round to power of 2
         //round to power of 2

+ 1 - 1
src/PixiEditor/Views/Rendering/Scene.cs

@@ -259,7 +259,7 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
         if (checkerBitmap == null) return;
         if (checkerBitmap == null) return;
 
 
         RectD operationSurfaceRectToRender = new RectD(0, 0, dirtyBounds.Width, dirtyBounds.Height);
         RectD operationSurfaceRectToRender = new RectD(0, 0, dirtyBounds.Width, dirtyBounds.Height);
-        float checkerScale = (float)ZoomToViewportConverter.ZoomToViewport(16, Scale) * 0.25f;
+        float checkerScale = (float)ZoomToViewportConverter.ZoomToViewport(16, Scale) * 0.5f;
         checkerPaint?.Dispose();
         checkerPaint?.Dispose();
         checkerPaint = new Paint
         checkerPaint = new Paint
         {
         {