diff --git a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImage.java b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImageWithEvents.java similarity index 95% rename from src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImage.java rename to src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImageWithEvents.java index b9942de83..587744eeb 100644 --- a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImage.java +++ b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/GLTextureFromImageWithEvents.java @@ -14,11 +14,11 @@ /** * Creates and manages an OpenGL {@link Texture} from an {@link ImageWithEvents}. */ -public class GLTextureFromImage implements ImageEventListener { +public class GLTextureFromImageWithEvents implements ImageEventListener { private Texture texture; private final ImageWithEvents imageWithEvents; - public GLTextureFromImage(ImageWithEvents imageWithEvents) { + public GLTextureFromImageWithEvents(ImageWithEvents imageWithEvents) { if(imageWithEvents==null) { throw new NullPointerException("imageWithEvents cannot be null."); } diff --git a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/ImageWithEvents.java b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/ImageWithEvents.java index e744aa569..bc537fa6c 100644 --- a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/ImageWithEvents.java +++ b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/ImageWithEvents.java @@ -20,7 +20,7 @@ public ImageWithEvents(BufferedImage image) { } public ImageWithEvents() { - this.image = null; + this(null); } public void addListener(ImageEventListener listener) { diff --git a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/TextureManager.java b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/TextureManager.java index fc81c412e..7aa79bd0e 100644 --- a/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/TextureManager.java +++ b/src/main/java/com/marginallyclever/robotoverlord/renderpanel/texturemanager/TextureManager.java @@ -14,26 +14,31 @@ * @since 2.11.0 */ public class TextureManager { - private static final HashMap texturePool = new HashMap<>(); + private static final HashMap texturePool = new HashMap<>(); - public static Texture get(String filename) { - GLTextureFromImage textureFromImage = texturePool.get(filename); + /** + * Get a texture from the pool. If the texture does not exist, use the {@link ImageFactory} create it. + * @param sourceName the name of the texture to get. + * @return the texture. + */ + public static Texture get(String sourceName) { + GLTextureFromImageWithEvents textureFromImage = texturePool.get(sourceName); if (textureFromImage == null) { - ImageWithEvents img = ImageFactory.get(filename); + ImageWithEvents img = ImageFactory.get(sourceName); if(img==null) { return null; } if(img.image==null) { return null; } - textureFromImage = new GLTextureFromImage(img); - texturePool.put(filename, textureFromImage); + textureFromImage = new GLTextureFromImageWithEvents(img); + texturePool.put(sourceName, textureFromImage); } return textureFromImage.getTexture(); } public static void unloadAll(GL3 gl) { - for (GLTextureFromImage t : texturePool.values()) { + for (GLTextureFromImageWithEvents t : texturePool.values()) { t.destroy(gl); } }