Эх сурвалжийг харах

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

badlogic 6 жил өмнө
parent
commit
f68ac18a82

+ 1 - 0
spine-ts/build/spine-all.d.ts

@@ -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;

+ 13 - 1
spine-ts/build/spine-all.js

@@ -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;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 1 - 0
spine-ts/build/spine-player.d.ts

@@ -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;

+ 13 - 1
spine-ts/build/spine-player.js

@@ -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;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
spine-ts/build/spine-player.js.map


+ 1 - 0
spine-ts/build/spine-webgl.d.ts

@@ -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;

+ 13 - 1
spine-ts/build/spine-webgl.js

@@ -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;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 14 - 1
spine-ts/webgl/src/GLTexture.ts

@@ -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) {

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно