From 8e3912c0ae783ab77ac176c39d4e7b9ab738d352 Mon Sep 17 00:00:00 2001 From: iobyte Date: Mon, 22 Jan 2024 18:23:57 +0000 Subject: [PATCH] trackeditor: speed up image has alpha check with cache git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9269 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 778e5a9e6cffa0d31d147e3d866abab792c36596 Former-commit-id: c2cd977dd27321dacfa314aed068e0e0f6af096b --- src/tools/trackeditor/gui/CheckDialog.java | 11 +++++++++-- src/tools/trackeditor/utils/Properties.java | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/tools/trackeditor/gui/CheckDialog.java b/src/tools/trackeditor/gui/CheckDialog.java index e7c1c2519..8cd2c0bab 100644 --- a/src/tools/trackeditor/gui/CheckDialog.java +++ b/src/tools/trackeditor/gui/CheckDialog.java @@ -12,8 +12,10 @@ import java.io.File; import java.io.FileReader; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.Map; import java.util.Set; import java.util.Vector; @@ -55,6 +57,7 @@ public class CheckDialog extends JDialog private Set textures = new HashSet(); private String dataDirectory = null; private TrackData trackData = null; + private Map imageHasAlpha = new HashMap(); public CheckDialog(EditorFrame editorFrame) { @@ -1054,9 +1057,13 @@ public class CheckDialog extends JDialog { try { - BufferedImage image = ImageIO.read(textureFile); + if (!imageHasAlpha.containsKey(textureFile.getAbsolutePath())) + { + BufferedImage image = ImageIO.read(textureFile); + imageHasAlpha.put(textureFile.getAbsolutePath(), image.getColorModel().hasAlpha()); + } - if (!image.getColorModel().hasAlpha()) + if (imageHasAlpha.get(textureFile.getAbsolutePath())) { doubleSided = true; } diff --git a/src/tools/trackeditor/utils/Properties.java b/src/tools/trackeditor/utils/Properties.java index 3ab8442b6..87528688d 100644 --- a/src/tools/trackeditor/utils/Properties.java +++ b/src/tools/trackeditor/utils/Properties.java @@ -34,7 +34,7 @@ public class Properties private static Properties instance = new Properties(); private Vector propertiesListeners = new Vector(); public final String title = "sd2-trackeditor"; - public final String version = "1.4.14"; + public final String version = "1.4.15"; private String path; private double imageScale = 1;