Browse Source

Unify tool blending modes

Equbuxu 3 years ago
parent
commit
229c06a949

+ 1 - 0
PixiEditor/Models/Tools/Tools/CircleTool.cs

@@ -55,6 +55,7 @@ namespace PixiEditor.Models.Tools.Tools
                 float radiusY = (fixedCoordinates.Coords2.Y - fixedCoordinates.Coords1.Y) / 2.0f;
                 float centerX = (fixedCoordinates.Coords1.X + fixedCoordinates.Coords2.X + 1) / 2.0f - layer.OffsetX;
                 float centerY = (fixedCoordinates.Coords1.Y + fixedCoordinates.Coords2.Y + 1) / 2.0f - layer.OffsetY;
+                paint.BlendMode = SKBlendMode.Src;
 
                 if (hasFillColor)
                 {

+ 2 - 2
PixiEditor/Models/Tools/Tools/LineTool.cs

@@ -139,7 +139,7 @@ namespace PixiEditor.Models.Tools.Tools
             Coordinates start = coordinates[0];
             Coordinates end = coordinates[^1];
 
-            DrawLine(layer, start, end, color, thickness, SKBlendMode.SrcOver);
+            DrawLine(layer, start, end, color, thickness, SKBlendMode.Src);
         }
 
         public void DrawLine(
@@ -266,4 +266,4 @@ namespace PixiEditor.Models.Tools.Tools
             }
         }
     }
-}
+}

+ 2 - 11
PixiEditor/Models/Tools/Tools/PenTool.cs

@@ -1,8 +1,6 @@
 using PixiEditor.Models.Controllers;
-using PixiEditor.Models.DataHolders;
 using PixiEditor.Models.Layers;
 using PixiEditor.Models.Position;
-using PixiEditor.Models.Tools.ToolSettings;
 using PixiEditor.Models.Tools.ToolSettings.Settings;
 using PixiEditor.Models.Tools.ToolSettings.Toolbars;
 using SkiaSharp;
@@ -32,15 +30,13 @@ namespace PixiEditor.Models.Tools.Tools
             Toolbar = new PenToolbar();
             toolSizeSetting = Toolbar.GetSetting<SizeSetting>("ToolSize");
             pixelPerfectSetting = Toolbar.GetSetting<BoolSetting>("PixelPerfectEnabled");
-            pixelPerfectSetting.ValueChanged += PixelPerfectSettingValueChanged;
             ClearPreviewLayerOnEachIteration = false;
             BitmapManager = bitmapManager;
             lineTool = new LineTool();
         }
 
         public override string Tooltip => "Standard brush. (B)";
-        public override bool UsesShift => false;

-
+        public override bool UsesShift => false;
 
         public override void OnRecordingLeftMouseDown(MouseEventArgs e)
         {
@@ -68,7 +64,7 @@ namespace PixiEditor.Models.Tools.Tools
             Layer layer, Coordinates startingCoords, Coordinates latestCords, SKColor color, int toolSize,
             bool pixelPerfect = false,
             Layer previewLayer = null,
-            SKBlendMode blendMode = SKBlendMode.SrcOver)
+            SKBlendMode blendMode = SKBlendMode.Src)
         {
 
             SKStrokeCap cap = toolSize == 1 ? SKStrokeCap.Square : SKStrokeCap.Round;
@@ -157,10 +153,5 @@ namespace PixiEditor.Models.Tools.Tools
             }
             return alpha;
         }
-
-        private void PixelPerfectSettingValueChanged(object sender, SettingValueChangedEventArgs<bool> e)
-        {
-            RequiresPreviewLayer = e.NewValue;
-        }
     }
 }

+ 1 - 0
PixiEditor/Models/Tools/Tools/RectangleTool.cs

@@ -66,6 +66,7 @@ namespace PixiEditor.Models.Tools.Tools
                 int y = fixedCoordinates.Coords1.Y - layer.OffsetY;
                 int w = fixedCoordinates.Coords2.X - fixedCoordinates.Coords1.X;
                 int h = fixedCoordinates.Coords2.Y - fixedCoordinates.Coords1.Y;
+                paint.BlendMode = SKBlendMode.Src;
 
                 if (fillColor.HasValue)
                 {