Browse Source

PenTool improvements

flabbet 3 years ago
parent
commit
b4bca309df

+ 25 - 12
PixiEditor/Models/Controllers/BitmapManager.cs

@@ -248,19 +248,32 @@ namespace PixiEditor.Models.Controllers
             {
                 previewLayerSize = ToolSize;
                 halfSize = (int)Math.Floor(ToolSize / 2f);
-                float sizeMod = ToolSize % 2 == 0 ? 0 : 0.5f;
-                AdjustOffset(newPosition, previewLayer);
-                int centerX = newPosition.X - previewLayer.OffsetX;
-                int centerY = newPosition.Y - previewLayer.OffsetY;
-
                 previewLayer.CreateNewBitmap(ToolSize, ToolSize);
-                previewLayer.LayerBitmap.SkiaSurface.Canvas
-                .DrawOval(
-                    centerX,
-                    centerY,
-                    halfSize + sizeMod,
-                    halfSize + sizeMod,
-                    _highlightPaint);
+
+                if (ToolSize != 3)
+                {
+                    float sizeMod = ToolSize % 2 == 0 ? 0 : 0.5f;
+                    if (ToolSize == 1)
+                    {
+                        sizeMod = 1;
+                    }
+
+                    AdjustOffset(newPosition, previewLayer);
+                    int centerX = newPosition.X - previewLayer.OffsetX;
+                    int centerY = newPosition.Y - previewLayer.OffsetY;
+
+                    previewLayer.LayerBitmap.SkiaSurface.Canvas
+                    .DrawOval(
+                        centerX,
+                        centerY,
+                        halfSize + sizeMod,
+                        halfSize + sizeMod,
+                        _highlightPaint);
+                }
+                else
+                {
+                    previewLayer.LayerBitmap.SkiaSurface.Canvas.Clear(_highlightPaint.Color);
+                }
 
                 previewLayer.InvokeLayerBitmapChange();
             }

+ 1 - 1
PixiEditor/Models/Tools/Tools/PenTool.cs

@@ -69,7 +69,7 @@ namespace PixiEditor.Models.Tools.Tools
             SKBlendMode blendMode = SKBlendMode.Src)
         {
 
-            SKStrokeCap cap = toolSize == 1 ? SKStrokeCap.Square : SKStrokeCap.Round;
+            SKStrokeCap cap = toolSize == 1 || toolSize == 3 ? SKStrokeCap.Square : SKStrokeCap.Round;
             if (!pixelPerfect)
             {
                 lineTool.DrawLine(layer, startingCoords, latestCords, color, toolSize, blendMode, cap);