From f08b53243e758b13f16cd9a3919e6073386acea5 Mon Sep 17 00:00:00 2001 From: Li Date: Mon, 28 Nov 2022 11:55:08 +1300 Subject: [PATCH] Improve load times --- SilicaTilesEditor/MainForm.cs | 7 ++++--- SilicaTilesEditor/Tileset.cs | 23 ++++++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/SilicaTilesEditor/MainForm.cs b/SilicaTilesEditor/MainForm.cs index bbe8c20..aac65ff 100644 --- a/SilicaTilesEditor/MainForm.cs +++ b/SilicaTilesEditor/MainForm.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Threading.Tasks; using System.Windows.Forms; namespace SilicaTilesEditor @@ -42,9 +44,8 @@ namespace SilicaTilesEditor } private void MainForm_Load(object sender, EventArgs e) { - Tileset.ReadTerrain(); - Tileset.ReadOverlay(); - Tileset.ReadExtOverlay(); + Tileset.ReadAllTiles(); + layout.ColumnStyles[0].Width = (32*7) + SystemInformation.VerticalScrollBarWidth; tileset0.Checked = true; tileList.ExtOverlay = 0; diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index 1848a24..ce200ba 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -1,6 +1,9 @@ using SilicaTilesEditor.Properties; using System; +using System.Collections.Generic; using System.Drawing; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; namespace SilicaTilesEditor { @@ -18,7 +21,6 @@ namespace SilicaTilesEditor public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32))]; public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32))]; public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32))]; - public static Bitmap[] JoinedTileset { get @@ -79,7 +81,19 @@ namespace SilicaTilesEditor } } - public static void ReadTerrain() + public static void ReadAllTiles() + { + Task[] tileTasks = new Task[3]; + + tileTasks[0] = Task.Run(() => readTerrain()); + tileTasks[1] = Task.Run(() => readOverlay()); + tileTasks[2] = Task.Run(() => readExtOverlay()); + + Task.WaitAll(tileTasks); + ReadAllTerrain = true; + ReadAllOverlay = true; + } + private static void readTerrain() { Console.WriteLine("Reading Terrain.png..."); int i = 0; @@ -97,10 +111,9 @@ namespace SilicaTilesEditor CopyRegionIntoImage(Resources.TerrainTileset, srcRect, TerrainList[i], dstRect); } } - ReadAllTerrain = true; } - public static void ReadExtOverlay() + private static void readExtOverlay() { Rectangle dstRect = new Rectangle(0, 0, 32, 48); Rectangle srcRect = new Rectangle(0, 0, 32, 48); @@ -126,7 +139,7 @@ namespace SilicaTilesEditor Console.WriteLine("Total Tiles Read: " + i.ToString()); } } - public static void ReadOverlay() + private static void readOverlay() { Console.WriteLine("Reading Overlay.png..."); int i = 0;