flabbet пре 1 година
родитељ
комит
8bd032a460

+ 4 - 4
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/CombineSeparate/CombineColorNode.cs

@@ -34,10 +34,10 @@ public class CombineColorNode : Node
 
     private Half4 GetColor(FuncContext ctx)
     {
-        var r = R.Value(ctx);
-        var g = G.Value(ctx);
-        var b = B.Value(ctx);
-        var a = A.Value(ctx);
+        var r = ctx.GetValue(R);
+        var g = ctx.GetValue(G);
+        var b = ctx.GetValue(B);
+        var a = ctx.GetValue(A);
 
         return ctx.NewHalf4(r, g, b, a); 
     }

+ 2 - 2
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/MergeNode.cs

@@ -40,8 +40,8 @@ public class MergeNode : Node, IBackgroundInput
             return null;
         }
         
-        int width = Math.Max(Top.Value?.Size.X ?? Bottom.Value.Size.X, Bottom.Value.Size.X);
-        int height = Math.Max(Top.Value?.Size.Y ?? Bottom.Value.Size.Y, Bottom.Value.Size.Y);
+        int width = Math.Max(Top.Value?.Size.X ?? Bottom.Value.Size.X, Bottom.Value?.Size.X ?? Top.Value.Size.X);
+        int height = Math.Max(Top.Value?.Size.Y ?? Bottom.Value.Size.Y, Bottom.Value?.Size.Y ?? Top.Value.Size.Y);
         
         Texture workingSurface = RequestTexture(0, new VecI(width, height), true);
         

+ 1 - 1
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/ModifyImageRightNode.cs

@@ -123,7 +123,7 @@ public class ModifyImageRightNode : Node, IPairNodeEnd
             surface.DrawingSurface.Canvas.DrawPaint(drawingPaint);
             builder.Dispose();
         }
-        
+
         Output.Value = surface;
 
         return Output.Value;

+ 0 - 2
src/PixiEditor.ChangeableDocument/Rendering/DocumentRenderer.cs

@@ -24,9 +24,7 @@ public class DocumentRenderer
         RenderingContext context = new(frameTime, chunkPos, resolution, Document.Size);
         try
         {
-          
             return RenderChunkOnGraph(chunkPos, resolution, globalClippingRect, Document.NodeGraph, context);
-
         }
         catch (ObjectDisposedException)
         {

+ 0 - 2
src/PixiEditor/Models/Rendering/MemberPreviewUpdater.cs

@@ -759,8 +759,6 @@ internal class MemberPreviewUpdater
                 nodeVm.ResultPreview.DrawingSurface.Canvas.Save();
                 nodeVm.ResultPreview.DrawingSurface.Canvas.Scale(scalingX, scalingY);
 
-                RectI region = new RectI(0, 0, node.CachedResult.Size.X, node.CachedResult.Size.Y);
-
                 nodeVm.ResultPreview.DrawingSurface.Canvas.DrawSurface(node.CachedResult.DrawingSurface, 0, 0,
                     ReplacingPaint);
 

+ 5 - 1
src/PixiEditor/ViewModels/Dock/LayoutManager.cs

@@ -40,7 +40,9 @@ internal class LayoutManager
         TimelineDockViewModel timelineDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
         
         NodeGraphDockViewModel nodeGraphDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
+        /*
         ChannelsDockViewModel channelsDockDockViewModel = new(mainViewModel.WindowSubViewModel);
+        */
 
         RegisterDockable(layersDockViewModel);
         RegisterDockable(colorPickerDockViewModel);
@@ -50,7 +52,9 @@ internal class LayoutManager
         RegisterDockable(paletteViewerDockViewModel);
         RegisterDockable(timelineDockViewModel);
         RegisterDockable(nodeGraphDockViewModel);
+        /*
         RegisterDockable(channelsDockDockViewModel);
+        */
         
         DefaultLayout = new LayoutTree
         {
@@ -94,7 +98,7 @@ internal class LayoutManager
                         Second = new DockableArea
                         {
                             Id = "LayersArea",
-                            Dockables = [ DockContext.CreateDockable(layersDockViewModel), DockContext.CreateDockable(channelsDockDockViewModel) ]
+                            Dockables = [ DockContext.CreateDockable(layersDockViewModel) ]
                         },
                     },
                     FirstSize = 0.66,

+ 6 - 3
src/PixiEditor/ViewModels/Document/DocumentViewModel.cs

@@ -27,6 +27,7 @@ using PixiEditor.ChangeableDocument.Changes.NodeGraph;
 using PixiEditor.ChangeableDocument.Enums;
 using PixiEditor.ChangeableDocument.Rendering;
 using PixiEditor.DrawingApi.Core;
+using PixiEditor.DrawingApi.Core.Bridge;
 using PixiEditor.DrawingApi.Core.Numerics;
 using PixiEditor.DrawingApi.Core.Surfaces.ImageData;
 using PixiEditor.DrawingApi.Core.Surfaces.Vector;
@@ -507,15 +508,17 @@ internal partial class DocumentViewModel : PixiObservableObject, IDocument
             {
                 for (int j = 0; j < sizeInChunks.Y; j++)
                 {
-                    Dispatcher.UIThread.Invoke(() =>
+                    var i1 = i;
+                    var j1 = j;
+                    DrawingBackendApi.Current.RenderDispatch(() =>
                     {
-                        var maybeChunk = Renderer.RenderChunk(new(i, j), ChunkResolution.Full, frameTime);
+                        var maybeChunk = Renderer.RenderChunk(new(i1, j1), ChunkResolution.Full, frameTime);
                         if (maybeChunk.IsT1)
                             return;
                         using Chunk chunk = maybeChunk.AsT0;
                         finalSurface.DrawingSurface.Canvas.DrawSurface(
                             chunk.Surface.DrawingSurface,
-                            i * ChunkyImage.FullChunkSize, j * ChunkyImage.FullChunkSize);
+                            i1 * ChunkyImage.FullChunkSize, j1 * ChunkyImage.FullChunkSize);
                     });
                 }
             }

+ 0 - 1
src/PixiEditor/Views/Main/ViewportControls/Viewport.axaml

@@ -112,7 +112,6 @@
             ZoomOutOnClick="{Binding ZoomOutOnClick, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=viewportControls:Viewport}, Mode=TwoWay}"
             FlipX="{Binding FlipX, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=viewportControls:Viewport}, Mode=TwoWay}"
             FlipY="{Binding FlipY, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=viewportControls:Viewport}, Mode=TwoWay}"
-            Channels="{Binding Channels, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=viewportControls:Viewport}, Mode=TwoWay}"
             AllOverlays="{Binding ElementName=vpUc, Path=ActiveOverlays}"
             FadeOut="{Binding Source={viewModels:ToolVM ColorPickerToolViewModel}, Path=PickOnlyFromReferenceLayer, Mode=OneWay}"
             DefaultCursor="{Binding Source={viewModels:MainVM}, Path=ToolsSubViewModel.ToolCursor, Mode=OneWay}"

+ 5 - 11
src/PixiEditor/Views/Rendering/Scene.cs

@@ -151,8 +151,7 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
             FlipX, FlipY,
             dirtyRect,
             Bounds,
-            sceneOpacity,
-            Channels.GetColorMatrix());
+            sceneOpacity);
 
         var matrix = CalculateTransformMatrix();
         context.PushTransform(matrix);
@@ -485,7 +484,6 @@ internal class DrawSceneOperation : SkiaDrawOperation
     public bool FlipX { get; set; }
     public bool FlipY { get; set; }
     public Rect ViewportBounds { get; }
-    public ColorMatrix ColorMatrix { get; }
 
     public RectI SurfaceRectToRender { get; }
 
@@ -494,8 +492,7 @@ internal class DrawSceneOperation : SkiaDrawOperation
     private bool hardwareAccelerationAvailable = DrawingBackendApi.Current.IsHardwareAccelerated;
 
     public DrawSceneOperation(Texture surface, DocumentViewModel document, VecD contentPosition, double scale,
-        double angle, bool flipX, bool flipY, Rect dirtyBounds, Rect viewportBounds, double opacity,
-        ColorMatrix colorMatrix) : base(dirtyBounds)
+        double angle, bool flipX, bool flipY, Rect dirtyBounds, Rect viewportBounds, double opacity) : base(dirtyBounds)
     {
         Surface = surface;
         Document = document;
@@ -504,7 +501,6 @@ internal class DrawSceneOperation : SkiaDrawOperation
         Angle = angle;
         FlipX = flipX;
         FlipY = flipY;
-        ColorMatrix = colorMatrix;
         ViewportBounds = viewportBounds;
         _paint.Color = _paint.Color.WithAlpha((byte)(opacity * 255));
         SurfaceRectToRender = FindRectToRender((float)scale);
@@ -527,11 +523,9 @@ internal class DrawSceneOperation : SkiaDrawOperation
         using var ctx = DrawingBackendApi.Current.RenderOnDifferentGrContext(lease.GrContext);
 
 
-        var matrixValues = new float[ColorMatrix.Width * ColorMatrix.Height];
-        ColorMatrix.TryGetMembers(matrixValues);
-
-        _paint.ColorFilter = SKColorFilter.CreateColorMatrix(matrixValues);
-
+        /*var matrixValues = new float[ColorMatrix.Width * ColorMatrix.Height];
+        ColorMatrix.TryGetMembers(matrixValues);*/
+        
         if (!hardwareAccelerationAvailable)
         {
             // snapshotting wanted region on CPU is faster than rendering whole surface on CPU,