diff --git a/src/main/kotlin/games/perses/texture/Textures.kt b/src/main/kotlin/games/perses/texture/Textures.kt index 9e45be1..f140f48 100644 --- a/src/main/kotlin/games/perses/texture/Textures.kt +++ b/src/main/kotlin/games/perses/texture/Textures.kt @@ -78,7 +78,7 @@ class Texture( val glTexture: WebGLTexture, - val shaderProgram: ShaderProgram, + shaderProgram: ShaderProgram, val width: Int, val height: Int ) { @@ -308,11 +308,7 @@ fun ready() = loaded == startedLoading fun has(name: String) = textures[name] != null - fun get(name: String) = textures[name] ?: throw IllegalArgumentException("Texture with name $name is not loaded!") - - fun clear() { - // todo: delete and unbind all textures... - } + operator fun get(name: String) = textures[name] ?: throw IllegalArgumentException("Texture with name $name is not loaded!") fun render() { for ((key, value) in textures) { @@ -320,4 +316,12 @@ } } + fun dispose() { + val gl = Game.gl() + + for (texture in textures.values) { + gl.deleteTexture(texture.glTexture) + } + } + } diff --git a/src/main/kotlin/games/perses/texture/Textures.kt b/src/main/kotlin/games/perses/texture/Textures.kt index 9e45be1..f140f48 100644 --- a/src/main/kotlin/games/perses/texture/Textures.kt +++ b/src/main/kotlin/games/perses/texture/Textures.kt @@ -78,7 +78,7 @@ class Texture( val glTexture: WebGLTexture, - val shaderProgram: ShaderProgram, + shaderProgram: ShaderProgram, val width: Int, val height: Int ) { @@ -308,11 +308,7 @@ fun ready() = loaded == startedLoading fun has(name: String) = textures[name] != null - fun get(name: String) = textures[name] ?: throw IllegalArgumentException("Texture with name $name is not loaded!") - - fun clear() { - // todo: delete and unbind all textures... - } + operator fun get(name: String) = textures[name] ?: throw IllegalArgumentException("Texture with name $name is not loaded!") fun render() { for ((key, value) in textures) { @@ -320,4 +316,12 @@ } } + fun dispose() { + val gl = Game.gl() + + for (texture in textures.values) { + gl.deleteTexture(texture.glTexture) + } + } + } diff --git a/web/img/explosion9x9.png b/web/img/explosion9x9.png new file mode 100644 index 0000000..6ce4e2b --- /dev/null +++ b/web/img/explosion9x9.png Binary files differ