Browse Source

Fix resize-related bugs

Equbuxu 3 years ago
parent
commit
68bf476ca0

+ 0 - 1
PixiEditor/Models/Controllers/BitmapOperationsUtility.cs

@@ -185,7 +185,6 @@ namespace PixiEditor.Models.Controllers
                 Layer layer = layers[i];
                 LayerChange change = changes.First(x => x.LayerGuid == layer.LayerGuid);
                 layer.SetPixels(change.PixelChanges, false);
-                layer.InvokeLayerBitmapChange(new System.Windows.Int32Rect(layer.OffsetX, layer.OffsetY, layer.Width, layer.Height));
             }
 
             return oldPixelValues;

+ 1 - 1
PixiEditor/Models/Controllers/LayerStackRenderer.cs

@@ -45,7 +45,7 @@ namespace PixiEditor.Models.Controllers
             finalSurface?.Dispose();
             backingSurface?.Dispose();
             finalSurface = new Surface(newWidth, newHeight);
-            finalBitmap = new WriteableBitmap(newWidth, newHeight, 96, 96, PixelFormats.Pbgra32, null);
+            FinalBitmap = new WriteableBitmap(newWidth, newHeight, 96, 96, PixelFormats.Pbgra32, null);
             var imageInfo = new SKImageInfo(newWidth, newHeight, SKColorType.Bgra8888, SKAlphaType.Premul, SKColorSpace.CreateSrgb());
             backingSurface = SKSurface.Create(imageInfo, finalBitmap.BackBuffer, finalBitmap.BackBufferStride);
             Update(new Int32Rect(0, 0, newWidth, newHeight));

+ 1 - 0
PixiEditor/Models/DataHolders/Document/Document.Constructors.cs

@@ -26,6 +26,7 @@ namespace PixiEditor.Models.DataHolders
             Layers.CollectionChanged += Layers_CollectionChanged;
             LayerStructure.Groups.CollectionChanged += Groups_CollectionChanged;
             LayerStructure.LayerStructureChanged += LayerStructure_LayerStructureChanged;
+            DocumentSizeChanged += (sender, args) => Renderer.Resize(args.NewWidth, args.NewHeight);
         }
 
         private void LayerStructure_LayerStructureChanged(object sender, LayerStructureChangedEventArgs e)

+ 1 - 1
PixiEditor/Models/DataHolders/Surface.cs

@@ -11,7 +11,7 @@ namespace PixiEditor.Models.DataHolders
     {
         public static SKPaint ReplacingPaint { get; } = new SKPaint() { BlendMode = SKBlendMode.Src };
 
-        private static readonly SKPaint nearestNeighborReplacingPaint = new SKPaint() { BlendMode = SKBlendMode.Src, FilterQuality = SKFilterQuality.Low };
+        private static readonly SKPaint nearestNeighborReplacingPaint = new SKPaint() { BlendMode = SKBlendMode.Src, FilterQuality = SKFilterQuality.None };
 
         public SKSurface SkiaSurface { get; }
         public int Width { get; }