From b0bf5e0cfd82bfd155acc4da322d830b7a370e41 Mon Sep 17 00:00:00 2001 From: VaDiM Date: Sun, 14 May 2023 22:28:04 +0300 Subject: [PATCH] Optimize drawing performance of packed sprites - Restored some code from an earlier version (https://github.com/Perfare/AssetStudio/commit/e501940f035cbf561e22350bb1c8fb3f0be7fe31), since it works faster for packed sprites with a small number of triangles --- AssetStudioUtility/SpriteHelper.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AssetStudioUtility/SpriteHelper.cs b/AssetStudioUtility/SpriteHelper.cs index acb35e1..8d6d735 100644 --- a/AssetStudioUtility/SpriteHelper.cs +++ b/AssetStudioUtility/SpriteHelper.cs @@ -149,6 +149,13 @@ namespace AssetStudio AlphaCompositionMode = PixelAlphaCompositionMode.DestOut } }; + if (triangles.Length < 1024) + { + var rectP = new RectangularPolygon(0, 0, rect.Width, rect.Height); + spriteImage.Mutate(x => x.Fill(options, SixLabors.ImageSharp.Color.Red, rectP.Clip(path))); + spriteImage.Mutate(x => x.Flip(FlipMode.Vertical)); + return spriteImage; + } using (var mask = new Image(rect.Width, rect.Height, SixLabors.ImageSharp.Color.Black)) { mask.Mutate(x => x.Fill(options, SixLabors.ImageSharp.Color.Red, path));