From 1a0cb86b527d251de511c0d1078d7fc049401884 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 19 Aug 2022 18:02:15 +0200 Subject: [PATCH] [ts][webgl] Fixes #2138, mip maps weren't generated in all cases. --- spine-ts/spine-webgl/src/GLTexture.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/spine-ts/spine-webgl/src/GLTexture.ts b/spine-ts/spine-webgl/src/GLTexture.ts index 07eaeb3e5..380bf3c54 100644 --- a/spine-ts/spine-webgl/src/GLTexture.ts +++ b/spine-ts/spine-webgl/src/GLTexture.ts @@ -51,6 +51,8 @@ export class GLTexture extends Texture implements Disposable, Restorable { this.bind(); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter)); + this.useMipMaps = GLTexture.usesMipMaps(minFilter); + if (this.useMipMaps) gl.generateMipmap(gl.TEXTURE_2D); } static validateMagFilter (magFilter: TextureFilter) { @@ -66,6 +68,19 @@ export class GLTexture extends Texture implements Disposable, Restorable { } } + static usesMipMaps(filter: TextureFilter) { + switch (filter) { + case TextureFilter.MipMap: + case TextureFilter.MipMapLinearLinear: + case TextureFilter.MipMapLinearNearest: + case TextureFilter.MipMapNearestLinear: + case TextureFilter.MipMapNearestNearest: + return true; + default: + return false; + } + } + setWraps (uWrap: TextureWrap, vWrap: TextureWrap) { let gl = this.context.gl; this.bind();