Browse Source

Added erase blend mode

CPKreuz 1 year ago
parent
commit
6a8e268444

+ 1 - 0
src/PixiEditor.ChangeableDocument/Enums/BlendMode.cs

@@ -18,4 +18,5 @@ public enum BlendMode
     Saturation,
     Saturation,
     Luminosity,
     Luminosity,
     Color,
     Color,
+    Erase
 }
 }

+ 1 - 0
src/PixiEditor.ChangeableDocument/Rendering/RenderingContext.cs

@@ -35,6 +35,7 @@ public class RenderingContext : IDisposable
         return blendMode switch
         return blendMode switch
         {
         {
             BlendMode.Normal => DrawingApiBlendMode.SrcOver,
             BlendMode.Normal => DrawingApiBlendMode.SrcOver,
+            BlendMode.Erase => DrawingApiBlendMode.DstOut,
             BlendMode.Darken => DrawingApiBlendMode.Darken,
             BlendMode.Darken => DrawingApiBlendMode.Darken,
             BlendMode.Multiply => DrawingApiBlendMode.Multiply,
             BlendMode.Multiply => DrawingApiBlendMode.Multiply,
             BlendMode.ColorBurn => DrawingApiBlendMode.ColorBurn,
             BlendMode.ColorBurn => DrawingApiBlendMode.ColorBurn,

+ 1 - 0
src/PixiEditor/Data/Localization/Languages/en.json

@@ -382,6 +382,7 @@
   "LAYERS_TITLE": "Layers",
   "LAYERS_TITLE": "Layers",
   "NAVIGATION_TITLE": "Navigation",
   "NAVIGATION_TITLE": "Navigation",
   "NORMAL_BLEND_MODE": "Normal",
   "NORMAL_BLEND_MODE": "Normal",
+  "ERASE_BLEND_MODE": "Erase",
   "DARKEN_BLEND_MODE": "Darken",
   "DARKEN_BLEND_MODE": "Darken",
   "MULTIPLY_BLEND_MODE": "Multiply",
   "MULTIPLY_BLEND_MODE": "Multiply",
   "COLOR_BURN_BLEND_MODE": "Color burn",
   "COLOR_BURN_BLEND_MODE": "Color burn",

+ 1 - 0
src/PixiEditor/Helpers/Extensions/BlendModeEx.cs

@@ -8,6 +8,7 @@ internal static class BlendModeEx
         return mode switch
         return mode switch
         {
         {
             BlendMode.Normal => "NORMAL_BLEND_MODE",
             BlendMode.Normal => "NORMAL_BLEND_MODE",
+            BlendMode.Erase => "ERASE_BLEND_MODE",
             BlendMode.Darken => "DARKEN_BLEND_MODE",
             BlendMode.Darken => "DARKEN_BLEND_MODE",
             BlendMode.Multiply => "MULTIPLY_BLEND_MODE",
             BlendMode.Multiply => "MULTIPLY_BLEND_MODE",
             BlendMode.ColorBurn => "COLOR_BURN_BLEND_MODE",
             BlendMode.ColorBurn => "COLOR_BURN_BLEND_MODE",

+ 1 - 0
src/PixiEditor/Views/Input/BlendModeComboBox.cs

@@ -74,6 +74,7 @@ internal class BlendModeComboBox : ComboBox
         var items = new List<AvaloniaObject>()
         var items = new List<AvaloniaObject>()
         {
         {
             new ComboBoxItem() { Content = BlendMode.Normal.LocalizedKeys(), Tag = BlendMode.Normal },
             new ComboBoxItem() { Content = BlendMode.Normal.LocalizedKeys(), Tag = BlendMode.Normal },
+            new ComboBoxItem() { Content = BlendMode.Erase.LocalizedKeys(), Tag = BlendMode.Erase },
             new Separator(),
             new Separator(),
             new ComboBoxItem() { Content = BlendMode.Darken.LocalizedKeys(), Tag = BlendMode.Darken },
             new ComboBoxItem() { Content = BlendMode.Darken.LocalizedKeys(), Tag = BlendMode.Darken },
             new ComboBoxItem() { Content = BlendMode.Multiply.LocalizedKeys(), Tag = BlendMode.Multiply },
             new ComboBoxItem() { Content = BlendMode.Multiply.LocalizedKeys(), Tag = BlendMode.Multiply },