[ts][webgl] Validate magnification filters before setting them in GLTexture. Closes #1508.

This commit is contained in:
badlogic 2019-10-09 14:17:52 +02:00
parent fe0b105fd1
commit f68ac18a82
10 changed files with 59 additions and 7 deletions

View File

@ -1394,6 +1394,7 @@ declare module spine.webgl {
private useMipMaps; private useMipMaps;
constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean);
setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void;
static validateMagFilter(magFilter: TextureFilter): TextureFilter.Nearest | TextureFilter.Linear | TextureFilter.Linear;
setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void;
update(useMipMaps: boolean): void; update(useMipMaps: boolean): void;
restore(): void; restore(): void;

View File

@ -8495,7 +8495,19 @@ var spine;
var gl = this.context.gl; var gl = this.context.gl;
this.bind(); this.bind();
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter));
};
GLTexture.validateMagFilter = function (magFilter) {
switch (magFilter) {
case spine.TextureFilter.MipMap:
case spine.TextureFilter.MipMapLinearLinear:
case spine.TextureFilter.MipMapLinearNearest:
case spine.TextureFilter.MipMapNearestLinear:
case spine.TextureFilter.MipMapNearestNearest:
return spine.TextureFilter.Linear;
default:
return magFilter;
}
}; };
GLTexture.prototype.setWraps = function (uWrap, vWrap) { GLTexture.prototype.setWraps = function (uWrap, vWrap) {
var gl = this.context.gl; var gl = this.context.gl;

File diff suppressed because one or more lines are too long

View File

@ -1363,6 +1363,7 @@ declare module spine.webgl {
private useMipMaps; private useMipMaps;
constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean);
setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void;
static validateMagFilter(magFilter: TextureFilter): TextureFilter.Nearest | TextureFilter.Linear | TextureFilter.Linear;
setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void;
update(useMipMaps: boolean): void; update(useMipMaps: boolean): void;
restore(): void; restore(): void;

View File

@ -8227,7 +8227,19 @@ var spine;
var gl = this.context.gl; var gl = this.context.gl;
this.bind(); this.bind();
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter));
};
GLTexture.validateMagFilter = function (magFilter) {
switch (magFilter) {
case spine.TextureFilter.MipMap:
case spine.TextureFilter.MipMapLinearLinear:
case spine.TextureFilter.MipMapLinearNearest:
case spine.TextureFilter.MipMapNearestLinear:
case spine.TextureFilter.MipMapNearestNearest:
return spine.TextureFilter.Linear;
default:
return magFilter;
}
}; };
GLTexture.prototype.setWraps = function (uWrap, vWrap) { GLTexture.prototype.setWraps = function (uWrap, vWrap) {
var gl = this.context.gl; var gl = this.context.gl;

File diff suppressed because one or more lines are too long

View File

@ -1363,6 +1363,7 @@ declare module spine.webgl {
private useMipMaps; private useMipMaps;
constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean);
setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void;
static validateMagFilter(magFilter: TextureFilter): TextureFilter.Nearest | TextureFilter.Linear | TextureFilter.Linear;
setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void;
update(useMipMaps: boolean): void; update(useMipMaps: boolean): void;
restore(): void; restore(): void;

View File

@ -8227,7 +8227,19 @@ var spine;
var gl = this.context.gl; var gl = this.context.gl;
this.bind(); this.bind();
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter));
};
GLTexture.validateMagFilter = function (magFilter) {
switch (magFilter) {
case spine.TextureFilter.MipMap:
case spine.TextureFilter.MipMapLinearLinear:
case spine.TextureFilter.MipMapLinearNearest:
case spine.TextureFilter.MipMapNearestLinear:
case spine.TextureFilter.MipMapNearestNearest:
return spine.TextureFilter.Linear;
default:
return magFilter;
}
}; };
GLTexture.prototype.setWraps = function (uWrap, vWrap) { GLTexture.prototype.setWraps = function (uWrap, vWrap) {
var gl = this.context.gl; var gl = this.context.gl;

File diff suppressed because one or more lines are too long

View File

@ -46,7 +46,20 @@ module spine.webgl {
let gl = this.context.gl; let gl = this.context.gl;
this.bind(); this.bind();
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter));
}
static validateMagFilter (magFilter: TextureFilter) {
switch(magFilter) {
case TextureFilter.MipMap:
case TextureFilter.MipMapLinearLinear:
case TextureFilter.MipMapLinearNearest:
case TextureFilter.MipMapNearestLinear:
case TextureFilter.MipMapNearestNearest:
return TextureFilter.Linear;
default:
return magFilter;
}
} }
setWraps (uWrap: TextureWrap, vWrap: TextureWrap) { setWraps (uWrap: TextureWrap, vWrap: TextureWrap) {