Jelajahi Sumber

[runtimes] Closes #971

badlogic 8 tahun lalu
induk
melakukan
eca798931b

TEMPAT SAMPAH
spine-as3/spine-as3-example/lib/spine-as3.swc


+ 2 - 1
spine-as3/spine-as3/src/spine/animation/AnimationState.as

@@ -132,7 +132,8 @@ package spine.animation {
 
 			// Require mixTime > 0 to ensure the mixing from entry was applied at least once.
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				// Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame).
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					queue.end(from);					

+ 2 - 1
spine-c/spine-c/src/spine/AnimationState.c

@@ -312,7 +312,8 @@ int /*boolean*/ _spAnimationState_updateMixingFrom (spAnimationState* self, spTr
 
 	/* Require mixTime > 0 to ensure the mixing from entry was applied at least once. */
 	if (to->mixTime > 0 && (to->mixTime >= to->mixDuration || to->timeScale == 0)) {
-		if (from->totalAlpha == 0) {
+		/* Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame). */
+		if (from->totalAlpha == 0 || to->mixDuration == 0) {
 			to->mixingFrom = from->mixingFrom;
 			to->interruptAlpha = from->interruptAlpha;
 			_spEventQueue_end(internal->queue, from);

+ 2 - 1
spine-lua/AnimationState.lua

@@ -346,7 +346,8 @@ function AnimationState:updateMixingFrom (to, delta)
 	
 	-- Require mixTime > 0 to ensure the mixing from entry was applied at least once.
 	if (to.mixTime > 0 and (to.mixTime >= to.mixDuration or to.timeScale == 0)) then
-		if (from.totalAlpha == 0) then
+		-- Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame).
+		if (from.totalAlpha == 0 or to.mixDuration == 0) then
 			to.mixingFrom = from.mixingFrom
 			to.interruptAlpha = from.interruptAlpha
 			self.queue:_end(from)

TEMPAT SAMPAH
spine-starling/spine-starling-example/lib/spine-as3.swc


TEMPAT SAMPAH
spine-starling/spine-starling/lib/spine-as3.swc


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

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-all.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 4 - 0
spine-ts/build/spine-canvas.d.ts

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-canvas.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-canvas.js.map


+ 4 - 0
spine-ts/build/spine-core.d.ts

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-core.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-core.js.map


+ 4 - 0
spine-ts/build/spine-threejs.d.ts

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-threejs.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-threejs.js.map


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

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-webgl.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 4 - 0
spine-ts/build/spine-widget.d.ts

@@ -585,6 +585,9 @@ declare module spine {
 		ChainScale = 2,
 	}
 }
+interface Math {
+	fround(n: number): number;
+}
 declare module spine {
 	class SharedAssetManager implements Disposable {
 		private pathPrefix;
@@ -987,6 +990,7 @@ declare module spine {
 		static newFloatArray(size: number): ArrayLike<number>;
 		static newShortArray(size: number): ArrayLike<number>;
 		static toFloatArray(array: Array<number>): number[] | Float32Array;
+		static toSinglePrecision(value: number): number;
 	}
 	class DebugUtils {
 		static logBones(skeleton: Skeleton): void;

+ 14 - 2
spine-ts/build/spine-widget.js

@@ -1216,7 +1216,7 @@ var spine;
 				return true;
 			var finished = this.updateMixingFrom(from, delta);
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);
@@ -2974,6 +2974,15 @@ var spine;
 		RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
 	})(RotateMode = spine.RotateMode || (spine.RotateMode = {}));
 })(spine || (spine = {}));
+(function () {
+	if (!Math.fround) {
+		Math.fround = (function (array) {
+			return function (x) {
+				return array[0] = x, array[0];
+			};
+		})(new Float32Array(1));
+	}
+})();
 var spine;
 (function (spine) {
 	var Assets = (function () {
@@ -4745,7 +4754,7 @@ var spine;
 					var eventData = skeletonData.findEvent(eventMap.name);
 					if (eventData == null)
 						throw new Error("Event not found: " + eventMap.name);
-					var event_5 = new spine.Event(eventMap.time, eventData);
+					var event_5 = new spine.Event(spine.Utils.toSinglePrecision(eventMap.time), eventData);
 					event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
 					event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
 					event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
@@ -5879,6 +5888,9 @@ var spine;
 		Utils.toFloatArray = function (array) {
 			return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
 		};
+		Utils.toSinglePrecision = function (value) {
+			return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
+		};
 		return Utils;
 	}());
 	Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";

File diff ditekan karena terlalu besar
+ 0 - 0
spine-ts/build/spine-widget.js.map


+ 2 - 1
spine-ts/core/src/AnimationState.ts

@@ -116,7 +116,8 @@ module spine {
 
 			// Require mixTime > 0 to ensure the mixing from entry was applied at least once.
 			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
-				if (from.totalAlpha == 0) {
+				// Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame).
+				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
 					to.interruptAlpha = from.interruptAlpha;
 					this.queue.end(from);

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini