diff --git a/src/main/java/inf112/fiasko/roborally/GameLauncher.java b/src/main/java/inf112/fiasko/roborally/GameLauncher.java index 68b595b..bb6be51 100644 --- a/src/main/java/inf112/fiasko/roborally/GameLauncher.java +++ b/src/main/java/inf112/fiasko/roborally/GameLauncher.java @@ -10,12 +10,14 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.viewport.ExtendViewport; import com.badlogic.gdx.utils.viewport.Viewport; import inf112.fiasko.roborally.game.Game; import inf112.fiasko.roborally.game.IDrawableGame; import inf112.fiasko.roborally.objects.IDrawableObject; import inf112.fiasko.roborally.utility.IOUtil; +import inf112.fiasko.roborally.utility.TextureConverterUtil; import java.util.List; @@ -102,6 +104,9 @@ public class GameLauncher extends ApplicationAdapter implements InputProcessor { @Override public void dispose() { batch.dispose(); + for (Disposable disposable : TextureConverterUtil.getDisposableElements()) { + disposable.dispose(); + } } @Override diff --git a/src/main/java/inf112/fiasko/roborally/utility/TextureConverterUtil.java b/src/main/java/inf112/fiasko/roborally/utility/TextureConverterUtil.java index 69b55c7..8245b2a 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/TextureConverterUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/TextureConverterUtil.java @@ -3,6 +3,7 @@ package inf112.fiasko.roborally.utility; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.utils.Disposable; import inf112.fiasko.roborally.element_properties.Direction; import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.element_properties.TileType; @@ -15,7 +16,9 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -32,6 +35,19 @@ public final class TextureConverterUtil { private TextureConverterUtil() {} + /** + * Gets a list of all disposable elements which should be disposed when the software closes + * @return A list of disposable elements + */ + public static List getDisposableElements() { + List disposables = new ArrayList<>(); + disposables.add(textureSheet); + disposables.add(robot1Texture); + disposables.add(robot2Texture); + disposables.add(robot3Texture); + return disposables; + } + /** * Gets the texture representing the tile * @param tile The tile to draw