mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
Merge branch '3.8-beta' of https://github.com/esotericsoftware/spine-runtimes into 3.8-beta
This commit is contained in:
commit
8c0e1a845f
@ -261,7 +261,7 @@ public class Bone implements Updatable {
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
/** The local rotation. */
|
||||
/** The local rotation in degrees, counter clockwise. */
|
||||
public float getRotation () {
|
||||
return rotation;
|
||||
}
|
||||
@ -336,7 +336,7 @@ public class Bone implements Updatable {
|
||||
this.ay = ay;
|
||||
}
|
||||
|
||||
/** The applied local rotation. */
|
||||
/** The applied local rotation in degrees, counter clockwise. */
|
||||
public float getARotation () {
|
||||
return arotation;
|
||||
}
|
||||
|
||||
@ -74,35 +74,55 @@ public class MeshAttachment extends VertexAttachment {
|
||||
float[] regionUVs = this.regionUVs;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length) this.uvs = new float[regionUVs.length];
|
||||
float[] uvs = this.uvs;
|
||||
float u, v, width, height;
|
||||
int n = uvs.length;
|
||||
float u = region.getU(), v = region.getV(), width, height;
|
||||
if (region instanceof AtlasRegion) {
|
||||
AtlasRegion region = (AtlasRegion)this.region;
|
||||
float textureWidth = region.getTexture().getWidth(), textureHeight = region.getTexture().getHeight();
|
||||
if (region.rotate) {
|
||||
u = region.getU() - (region.originalHeight - region.offsetY - region.packedWidth) / textureWidth;
|
||||
v = region.getV() - (region.originalWidth - region.offsetX - region.packedHeight) / textureHeight;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.packedWidth) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.packedHeight) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (int i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (int i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.packedWidth) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (int i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (int i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.getU() - region.offsetX / textureWidth;
|
||||
v = region.getV() - (region.originalHeight - region.offsetY - region.packedHeight) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.packedHeight) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
} else if (region == null) {
|
||||
u = v = 0;
|
||||
width = height = 1;
|
||||
} else {
|
||||
u = region.getU();
|
||||
v = region.getV();
|
||||
width = region.getU2() - u;
|
||||
height = region.getV2() - v;
|
||||
}
|
||||
for (int i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (int i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
@ -428,7 +428,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
|
||||
Slider loadScaleSlider = new Slider(0.1f, 3, 0.01f, false, skin);
|
||||
Label loadScaleLabel = new Label("100%", skin);
|
||||
TextButton loadScaleResetButton = new TextButton("Reset", skin);
|
||||
TextButton loadScaleResetButton = new TextButton("Reload", skin);
|
||||
|
||||
Slider zoomSlider = new Slider(0.01f, 10, 0.01f, false, skin);
|
||||
Label zoomLabel = new Label("100%", skin);
|
||||
@ -541,6 +541,8 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
}
|
||||
|
||||
void layout () {
|
||||
float resetWidth = loadScaleResetButton.getPrefWidth();
|
||||
|
||||
root.defaults().space(6);
|
||||
root.columnDefaults(0).top().right().padTop(3);
|
||||
root.columnDefaults(1).left();
|
||||
@ -549,7 +551,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
Table table = table();
|
||||
table.add(loadScaleLabel).width(29);
|
||||
table.add(loadScaleSlider).growX();
|
||||
table.add(loadScaleResetButton);
|
||||
table.add(loadScaleResetButton).width(resetWidth);
|
||||
root.add(table).fill().row();
|
||||
}
|
||||
root.add("Zoom:");
|
||||
@ -557,7 +559,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
Table table = table();
|
||||
table.add(zoomLabel).width(29);
|
||||
table.add(zoomSlider).growX();
|
||||
table.add(zoomResetButton);
|
||||
table.add(zoomResetButton).width(resetWidth);
|
||||
root.add(table).fill().row();
|
||||
}
|
||||
root.add("Scale X:");
|
||||
@ -565,7 +567,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
Table table = table();
|
||||
table.add(xScaleLabel).width(29);
|
||||
table.add(xScaleSlider).growX();
|
||||
table.add(xScaleResetButton).row();
|
||||
table.add(xScaleResetButton).width(resetWidth);
|
||||
root.add(table).fill().row();
|
||||
}
|
||||
root.add("Scale Y:");
|
||||
@ -573,7 +575,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
Table table = table();
|
||||
table.add(yScaleLabel).width(29);
|
||||
table.add(yScaleSlider).growX();
|
||||
table.add(yScaleResetButton);
|
||||
table.add(yScaleResetButton).width(resetWidth);
|
||||
root.add(table).fill().row();
|
||||
}
|
||||
root.add("Debug:");
|
||||
@ -678,6 +680,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
String dir = fileDialog.getDirectory();
|
||||
if (name == null || dir == null) return;
|
||||
loadSkeleton(new FileHandle(new File(dir, name).getAbsolutePath()));
|
||||
ui.toast("Loaded.");
|
||||
}
|
||||
});
|
||||
|
||||
@ -719,16 +722,22 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
loadScaleSlider.addListener(new ChangeListener() {
|
||||
public void changed (ChangeEvent event, Actor actor) {
|
||||
loadScaleLabel.setText(Integer.toString((int)(loadScaleSlider.getValue() * 100)) + "%");
|
||||
if (!loadScaleSlider.isDragging()) loadSkeleton(skeletonFile);
|
||||
if (!loadScaleSlider.isDragging()) {
|
||||
loadSkeleton(skeletonFile);
|
||||
ui.toast("Reloaded.");
|
||||
}
|
||||
loadScaleResetButton.setText(loadScaleSlider.getValue() == 1 ? "Reload" : "Reset");
|
||||
}
|
||||
});
|
||||
loadScaleResetButton.addListener(new ChangeListener() {
|
||||
public void changed (ChangeEvent event, Actor actor) {
|
||||
resetCameraPosition();
|
||||
if (loadScaleSlider.getValue() == 1)
|
||||
if (loadScaleSlider.getValue() == 1) {
|
||||
loadSkeleton(skeletonFile);
|
||||
else
|
||||
ui.toast("Reloaded.");
|
||||
} else
|
||||
loadScaleSlider.setValue(1);
|
||||
loadScaleResetButton.setText("Reload");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
1
spine-ts/build/spine-all.d.ts
vendored
1
spine-ts/build/spine-all.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
spine-ts/build/spine-canvas.d.ts
vendored
1
spine-ts/build/spine-canvas.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
spine-ts/build/spine-core.d.ts
vendored
1
spine-ts/build/spine-core.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
spine-ts/build/spine-player.d.ts
vendored
1
spine-ts/build/spine-player.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
spine-ts/build/spine-threejs.d.ts
vendored
1
spine-ts/build/spine-threejs.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
spine-ts/build/spine-webgl.d.ts
vendored
1
spine-ts/build/spine-webgl.d.ts
vendored
@ -880,6 +880,7 @@ declare module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5480,7 +5480,17 @@ var spine;
|
||||
var region = new TextureAtlasRegion();
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
region.rotate = reader.readValue() == "true";
|
||||
var rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
}
|
||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
}
|
||||
else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
reader.readTuple(tuple);
|
||||
var x = parseInt(tuple[0]);
|
||||
var y = parseInt(tuple[1]);
|
||||
@ -6582,23 +6592,45 @@ var spine;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length)
|
||||
this.uvs = spine.Utils.newFloatArray(regionUVs.length);
|
||||
var uvs = this.uvs;
|
||||
var u = 0, v = 0, width = 0, height = 0;
|
||||
var n = this.uvs.length;
|
||||
var u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof spine.TextureAtlasRegion) {
|
||||
var region = this.region;
|
||||
var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
switch (region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
}
|
||||
@ -6607,12 +6639,10 @@ var spine;
|
||||
width = height = 1;
|
||||
}
|
||||
else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
for (var i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (var i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -87,7 +87,15 @@ module spine {
|
||||
region.name = line;
|
||||
region.page = page;
|
||||
|
||||
region.rotate = reader.readValue() == "true";
|
||||
let rotateValue = reader.readValue();
|
||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
||||
region.degrees = 90;
|
||||
} else if (rotateValue.toLocaleLowerCase() == "false") {
|
||||
region.degrees = 0;
|
||||
} else {
|
||||
region.degrees = parseFloat(rotateValue);
|
||||
}
|
||||
region.rotate = region.degrees == 90;
|
||||
|
||||
reader.readTuple(tuple);
|
||||
let x = parseInt(tuple[0]);
|
||||
@ -207,6 +215,7 @@ module spine {
|
||||
y: number;
|
||||
index: number;
|
||||
rotate: boolean;
|
||||
degrees: number;
|
||||
texture: Texture;
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,36 +48,56 @@ module spine {
|
||||
let regionUVs = this.regionUVs;
|
||||
if (this.uvs == null || this.uvs.length != regionUVs.length) this.uvs = Utils.newFloatArray(regionUVs.length);
|
||||
let uvs = this.uvs;
|
||||
let u = 0, v = 0, width = 0, height = 0;
|
||||
let n = this.uvs.length;
|
||||
let u = this.region.u, v = this.region.v, width = 0, height = 0;
|
||||
if (this.region instanceof TextureAtlasRegion) {
|
||||
let region = this.region;
|
||||
let textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height;
|
||||
if (region.rotate) {
|
||||
u = region.u - (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v = region.v - (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
switch(region.degrees) {
|
||||
case 90:
|
||||
u -= (region.originalHeight - region.offsetY - region.height) / textureWidth;
|
||||
v -= (region.originalWidth - region.offsetX - region.width) / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (let i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (let i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i + 1] * width;
|
||||
uvs[i + 1] = v + height - regionUVs[i] * height;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i]) * height;
|
||||
}
|
||||
return;
|
||||
case 180:
|
||||
u -= (region.originalWidth - region.offsetX - region.width) / textureWidth;
|
||||
v -= region.offsetY / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
for (let i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i]) * width;
|
||||
uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height;
|
||||
}
|
||||
return;
|
||||
case 270:
|
||||
u -= region.offsetY / textureWidth;
|
||||
v -= region.offsetX / textureHeight;
|
||||
width = region.originalHeight / textureWidth;
|
||||
height = region.originalWidth / textureHeight;
|
||||
for (let i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + (1 - regionUVs[i + 1]) * width;
|
||||
uvs[i + 1] = v + regionUVs[i] * height;
|
||||
}
|
||||
return;
|
||||
}
|
||||
u = region.u - region.offsetX / textureWidth;
|
||||
v = region.v - (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
u -= region.offsetX / textureWidth;
|
||||
v -= (region.originalHeight - region.offsetY - region.height) / textureHeight;
|
||||
width = region.originalWidth / textureWidth;
|
||||
height = region.originalHeight / textureHeight;
|
||||
} else if (this.region == null) {
|
||||
u = v = 0;
|
||||
width = height = 1;
|
||||
} else {
|
||||
u = this.region.u;
|
||||
v = this.region.v;
|
||||
width = this.region.u2 - u;
|
||||
height = this.region.v2 - v;
|
||||
}
|
||||
|
||||
for (let i = 0, n = uvs.length; i < n; i += 2) {
|
||||
for (let i = 0; i < n; i += 2) {
|
||||
uvs[i] = u + regionUVs[i] * width;
|
||||
uvs[i + 1] = v + regionUVs[i + 1] * height;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user