Kaynağa Gözat

Fixed FixedViewport

flabbet 10 ay önce
ebeveyn
işleme
f943b86bcb

+ 1 - 1
src/PixiDocks

@@ -1 +1 @@
-Subproject commit 9e426679d633b139df1af9b13d6d23de3e54b287
+Subproject commit a3ef65cf88fc059becf6146fd6f615f09da8f498

+ 17 - 15
src/PixiEditor/Views/Main/ViewportControls/FixedViewport.axaml

@@ -13,18 +13,20 @@
              HorizontalAlignment="Center"
              VerticalAlignment="Center"
              d:DesignHeight="450" d:DesignWidth="800">
-
-    <visuals:TextureControl
-        x:Name="mainImage"
-        Focusable="True"
-        Texture="{Binding TargetBitmap, ElementName=uc}"
-        Stretch="Uniform"
-        SizeChanged="OnImageSizeChanged">
-        <ui1:RenderOptionsBindable.BitmapInterpolationMode>
-            <MultiBinding Converter="{converters1:WidthToBitmapScalingModeConverter}">
-                <Binding ElementName="uc" Path="TargetBitmap.Size.X"/>
-                <Binding ElementName="mainImage" Path="Bounds.Width"/>
-            </MultiBinding>
-        </ui1:RenderOptionsBindable.BitmapInterpolationMode>
-    </visuals:TextureControl>
-</UserControl>
+    
+        <visuals:PreviewPainterControl
+            x:Name="mainImage"
+            VerticalAlignment="Stretch"
+            HorizontalAlignment="Stretch"
+            Focusable="True"
+            PreviewPainter="{Binding Document.PreviewPainter, ElementName=uc}"
+            FrameToRender="{Binding Document.AnimationDataViewModel.ActiveFrameBindable, ElementName=uc}"
+            SizeChanged="OnImageSizeChanged">
+            <ui1:RenderOptionsBindable.BitmapInterpolationMode>
+                <MultiBinding Converter="{converters1:WidthToBitmapScalingModeConverter}">
+                    <Binding ElementName="uc" Path="Document.SizeBindable.X" />
+                    <Binding ElementName="mainImage" Path="Bounds.Width" />
+                </MultiBinding>
+            </ui1:RenderOptionsBindable.BitmapInterpolationMode>
+        </visuals:PreviewPainterControl>
+</UserControl>

+ 1 - 6
src/PixiEditor/Views/Main/ViewportControls/FixedViewport.axaml.cs

@@ -10,6 +10,7 @@ using Drawie.Backend.Core;
 using PixiEditor.Models.DocumentModels;
 using PixiEditor.Models.Position;
 using Drawie.Numerics;
+using PixiEditor.Models.Rendering;
 using PixiEditor.ViewModels.Document;
 
 namespace PixiEditor.Views.Main.ViewportControls;
@@ -119,12 +120,6 @@ internal partial class FixedViewport : UserControl, INotifyPropertyChanged
         Document?.Operations.AddOrUpdateViewport(GetLocation());
     }
 
-    private static void OnBitmapsChange(AvaloniaPropertyChangedEventArgs<Dictionary<ChunkResolution, Texture>> args)
-    {
-        FixedViewport? viewport = (FixedViewport)args.Sender;
-        viewport.Document?.Operations.AddOrUpdateViewport(viewport.GetLocation());
-    }
-
     private void OnImageSizeChanged(object sender, SizeChangedEventArgs e)
     {
         Document?.Operations.AddOrUpdateViewport(GetLocation());

+ 11 - 1
src/PixiEditor/Views/Visuals/PreviewPainterControl.cs

@@ -36,7 +36,17 @@ public class PreviewPainterControl : DrawieControl
     {
         PreviewPainterProperty.Changed.Subscribe(PainterChanged);
     }
-    
+
+    protected override Size MeasureOverride(Size availableSize)
+    {
+        return availableSize;
+    }
+
+    protected override Size ArrangeOverride(Size finalSize)
+    {
+        return finalSize;
+    }
+
     public PreviewPainterControl(PreviewPainter previewPainter, int frameToRender)
     {
         PreviewPainter = previewPainter;