Merge branch '3.8' into 4.0-beta

# Conflicts:
#	spine-as3/spine-as3/lib/spine-as3.swc
#	spine-as3/spine-as3/src/spine/BinaryInput.as
#	spine-starling/spine-starling/lib/spine-starling.swc
This commit is contained in:
badlogic 2021-06-10 15:28:08 +02:00
commit 131b586a42
2 changed files with 38 additions and 36 deletions

View File

@ -33,9 +33,9 @@ package spine {
internal class BinaryInput { internal class BinaryInput {
private var bytes : ByteArray; private var bytes : ByteArray;
public var strings : Vector.<String> = new Vector.<String>(); public var strings : Vector.<String> = new Vector.<String>();
public function BinaryInput(bytes: ByteArray) { public function BinaryInput(bytes: ByteArray) {
this.bytes = bytes; this.bytes = bytes;
} }
public function readByte() : int { public function readByte() : int {
@ -45,15 +45,15 @@ package spine {
public function readUnsignedByte() : int { public function readUnsignedByte() : int {
return bytes.readUnsignedByte(); return bytes.readUnsignedByte();
} }
public function readShort() : int { public function readShort() : int {
return bytes.readShort(); return bytes.readShort();
} }
public function readInt32(): int { public function readInt32(): int {
return bytes.readInt(); return bytes.readInt();
} }
public function readInt(optimizePositive: Boolean) : int { public function readInt(optimizePositive: Boolean) : int {
var b : int = readByte(); var b : int = readByte();
var result : int = b & 0x7F; var result : int = b & 0x7F;
@ -75,12 +75,12 @@ package spine {
} }
return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); return optimizePositive ? result : ((result >>> 1) ^ -(result & 1));
} }
public function readStringRef (): String { public function readStringRef (): String {
var index : int = readInt(true); var index : int = readInt(true);
return index == 0 ? null : strings[index - 1]; return index == 0 ? null : strings[index - 1];
} }
public function readString () : String { public function readString () : String {
var byteCount : int = readInt(true); var byteCount : int = readInt(true);
switch (byteCount) { switch (byteCount) {
@ -90,7 +90,7 @@ package spine {
return ""; return "";
} }
byteCount--; byteCount--;
var chars : String = ""; var chars : String = "";
for (var i : int = 0; i < byteCount;) { for (var i : int = 0; i < byteCount;) {
var b : int = readByte(); var b : int = readByte();
switch (b >> 4) { switch (b >> 4) {
@ -110,11 +110,11 @@ package spine {
} }
return chars; return chars;
} }
public function readFloat (): Number { public function readFloat (): Number {
return bytes.readFloat(); return bytes.readFloat();
} }
public function readBoolean (): Boolean { public function readBoolean (): Boolean {
return this.readByte() != 0; return this.readByte() != 0;
} }

View File

@ -30,6 +30,7 @@
package spine.attachments { package spine.attachments {
import spine.Color; import spine.Color;
import spine.Bone; import spine.Bone;
import flash.trace.Trace;
public dynamic class RegionAttachment extends Attachment { public dynamic class RegionAttachment extends Attachment {
public const BLX : int = 0; public const BLX : int = 0;
@ -72,25 +73,26 @@ package spine.attachments {
var localY : Number = -height * 0.5 * scaleY + regionOffsetY * regionScaleY; var localY : Number = -height * 0.5 * scaleY + regionOffsetY * regionScaleY;
var localX2 : Number = localX + regionWidth * regionScaleX; var localX2 : Number = localX + regionWidth * regionScaleX;
var localY2 : Number = localY + regionHeight * regionScaleY; var localY2 : Number = localY + regionHeight * regionScaleY;
var radians : Number = rotation * Math.PI / 180; var radians : Number = rotation * Math.PI / 180;
var ulDist : Number = Math.sqrt(localX * localX + localY * localY); var cos:Number = Math.cos(radians);
var ulAngle : Number = Math.atan2(localY, localX); var sin:Number = Math.sin(radians);
var urDist : Number = Math.sqrt(localX2 * localX2 + localY * localY); var localXCos:Number = localX * cos + x;
var urAngle : Number = Math.atan2(localY, localX2); var localXSin:Number = localX * sin;
var blDist : Number = Math.sqrt(localX * localX + localY2 * localY2); var localYCos:Number = localY * cos + y;
var blAngle : Number = Math.atan2(localY2, localX); var localYSin:Number = localY * sin;
var brDist : Number = Math.sqrt(localX2 * localX2 + localY2 * localY2); var localX2Cos:Number = localX2 * cos + x;
var brAngle : Number = Math.atan2(localY2, localX2); var localX2Sin:Number = localX2 * sin;
var localY2Cos:Number = localY2 * cos + y;
offset[BLX] = Math.cos(radians - blAngle) * blDist + x; var localY2Sin:Number = localY2 * sin;
offset[BLY] = Math.sin(radians - blAngle) * blDist + y; offset[BLX] = localXCos - localYSin;
offset[ULX] = Math.cos(radians - ulAngle) * ulDist + x; offset[BLY] = localYCos + localXSin;
offset[ULY] = Math.sin(radians - ulAngle) * ulDist + y; offset[ULX] = localXCos - localY2Sin;
offset[URX] = Math.cos(radians - urAngle) * urDist + x; offset[ULY] = localY2Cos + localXSin;
offset[URY] = Math.sin(radians - urAngle) * urDist + y; offset[URX] = localX2Cos - localY2Sin;
offset[BRX] = Math.cos(radians - brAngle) * brDist + x; offset[URY] = localY2Cos + localX2Sin;
offset[BRY] = Math.sin(radians - brAngle) * brDist + y; offset[BRX] = localX2Cos - localYSin;
offset[BRY] = localYCos + localX2Sin;
} }
public function setUVs(u : Number, v : Number, u2 : Number, v2 : Number, degrees : int) : void { public function setUVs(u : Number, v : Number, u2 : Number, v2 : Number, degrees : int) : void {
@ -127,33 +129,33 @@ package spine.attachments {
worldVertices[offset] = offsetX * a + offsetY * b + x; // br worldVertices[offset] = offsetX * a + offsetY * b + x; // br
worldVertices[offset + 1] = offsetX * c + offsetY * d + y; worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
offset += stride; offset += stride;
offsetX = vertexOffset[BLX]; offsetX = vertexOffset[BLX];
offsetY = vertexOffset[BLY]; offsetY = vertexOffset[BLY];
worldVertices[offset] = offsetX * a + offsetY * b + x; // bl worldVertices[offset] = offsetX * a + offsetY * b + x; // bl
worldVertices[offset + 1] = offsetX * c + offsetY * d + y; worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
offset += stride; offset += stride;
offsetX = vertexOffset[ULX]; offsetX = vertexOffset[ULX];
offsetY = vertexOffset[ULY]; offsetY = vertexOffset[ULY];
worldVertices[offset] = offsetX * a + offsetY * b + x; // ul worldVertices[offset] = offsetX * a + offsetY * b + x; // ul
worldVertices[offset + 1] = offsetX * c + offsetY * d + y; worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
offset += stride; offset += stride;
offsetX = vertexOffset[URX]; offsetX = vertexOffset[URX];
offsetY = vertexOffset[URY]; offsetY = vertexOffset[URY];
worldVertices[offset] = offsetX * a + offsetY * b + x; // ur worldVertices[offset] = offsetX * a + offsetY * b + x; // ur
worldVertices[offset + 1] = offsetX * c + offsetY * d + y; worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
} }
override public function copy (): Attachment { override public function copy (): Attachment {
var copy : RegionAttachment = new RegionAttachment(name); var copy : RegionAttachment = new RegionAttachment(name);
copy.regionWidth = regionWidth; copy.regionWidth = regionWidth;
copy.regionHeight = regionHeight; copy.regionHeight = regionHeight;
copy.regionOffsetX = regionOffsetX; copy.regionOffsetX = regionOffsetX;
copy.regionOffsetY = regionOffsetY; copy.regionOffsetY = regionOffsetY;
copy.regionOriginalWidth = regionOriginalWidth; copy.regionOriginalWidth = regionOriginalWidth;
copy.regionOriginalHeight = regionOriginalHeight; copy.regionOriginalHeight = regionOriginalHeight;
copy.rendererObject = rendererObject; copy.rendererObject = rendererObject;
copy.path = path; copy.path = path;
copy.x = x; copy.x = x;
@ -164,7 +166,7 @@ package spine.attachments {
copy.width = width; copy.width = width;
copy.height = height; copy.height = height;
copy.uvs = uvs.concat(); copy.uvs = uvs.concat();
copy.offset = offset.concat(); copy.offset = offset.concat();
copy.color.setFromColor(color); copy.color.setFromColor(color);
return copy; return copy;
} }