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();