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;