Improve load times

This commit is contained in:
Li 2022-11-28 11:55:08 +13:00
parent 21735a349e
commit f08b53243e
2 changed files with 22 additions and 8 deletions

View File

@ -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;

View File

@ -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;