mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[ts] Fixed atlas parsing.
This commit is contained in:
parent
3943bdd9b0
commit
20bca55b93
5
spine-ts/build/spine-all.d.ts
vendored
5
spine-ts/build/spine-all.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
@ -9461,7 +9521,7 @@ var spine;
|
|||||||
var atlasScale = att.width / w;
|
var atlasScale = att.width / w;
|
||||||
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
||||||
ctx.translate(w / 2, h / 2);
|
ctx.translate(w / 2, h / 2);
|
||||||
if (attachment.region.rotate) {
|
if (attachment.region.degrees == 90) {
|
||||||
var t = w;
|
var t = w;
|
||||||
w = h;
|
w = h;
|
||||||
h = t;
|
h = t;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
spine-ts/build/spine-canvas.d.ts
vendored
5
spine-ts/build/spine-canvas.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
@ -9461,7 +9521,7 @@ var spine;
|
|||||||
var atlasScale = att.width / w;
|
var atlasScale = att.width / w;
|
||||||
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
||||||
ctx.translate(w / 2, h / 2);
|
ctx.translate(w / 2, h / 2);
|
||||||
if (attachment.region.rotate) {
|
if (attachment.region.degrees == 90) {
|
||||||
var t = w;
|
var t = w;
|
||||||
w = h;
|
w = h;
|
||||||
h = t;
|
h = t;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
spine-ts/build/spine-core.d.ts
vendored
5
spine-ts/build/spine-core.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
spine-ts/build/spine-player.d.ts
vendored
5
spine-ts/build/spine-player.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
spine-ts/build/spine-threejs.d.ts
vendored
5
spine-ts/build/spine-threejs.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
spine-ts/build/spine-webgl.d.ts
vendored
5
spine-ts/build/spine-webgl.d.ts
vendored
@ -982,7 +982,7 @@ declare module spine {
|
|||||||
v2: number;
|
v2: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
rotate: boolean;
|
degrees: number;
|
||||||
offsetX: number;
|
offsetX: number;
|
||||||
offsetY: number;
|
offsetY: number;
|
||||||
originalWidth: number;
|
originalWidth: number;
|
||||||
@ -1012,6 +1012,7 @@ declare module spine {
|
|||||||
texture: Texture;
|
texture: Texture;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
|
pma: boolean;
|
||||||
}
|
}
|
||||||
class TextureAtlasRegion extends TextureRegion {
|
class TextureAtlasRegion extends TextureRegion {
|
||||||
page: TextureAtlasPage;
|
page: TextureAtlasPage;
|
||||||
@ -1022,6 +1023,8 @@ declare module spine {
|
|||||||
rotate: boolean;
|
rotate: boolean;
|
||||||
degrees: number;
|
degrees: number;
|
||||||
texture: Texture;
|
texture: Texture;
|
||||||
|
names: string[];
|
||||||
|
values: number[][];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
|
|||||||
@ -7750,7 +7750,7 @@ var spine;
|
|||||||
this.v2 = 0;
|
this.v2 = 0;
|
||||||
this.width = 0;
|
this.width = 0;
|
||||||
this.height = 0;
|
this.height = 0;
|
||||||
this.rotate = false;
|
this.degrees = 0;
|
||||||
this.offsetX = 0;
|
this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
this.offsetY = 0;
|
||||||
this.originalWidth = 0;
|
this.originalWidth = 0;
|
||||||
@ -7783,88 +7783,145 @@ var spine;
|
|||||||
if (textureLoader == null)
|
if (textureLoader == null)
|
||||||
throw new Error("textureLoader cannot be null.");
|
throw new Error("textureLoader cannot be null.");
|
||||||
var reader = new TextureAtlasReader(atlasText);
|
var reader = new TextureAtlasReader(atlasText);
|
||||||
var tuple = new Array(4);
|
var entry = new Array(4);
|
||||||
var page = null;
|
var page = null;
|
||||||
|
var region = null;
|
||||||
|
var pageFields = {};
|
||||||
|
pageFields["size"] = function () {
|
||||||
|
page.width = parseInt(entry[1]);
|
||||||
|
page.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["format"] = function () {
|
||||||
|
};
|
||||||
|
pageFields["filter"] = function () {
|
||||||
|
page.minFilter = spine.Texture.filterFromString(entry[1]);
|
||||||
|
page.magFilter = spine.Texture.filterFromString(entry[2]);
|
||||||
|
};
|
||||||
|
pageFields["repeat"] = function () {
|
||||||
|
if (entry[1].indexOf('x') != -1)
|
||||||
|
page.uWrap = spine.TextureWrap.Repeat;
|
||||||
|
if (entry[1].indexOf('y') != -1)
|
||||||
|
page.vWrap = spine.TextureWrap.Repeat;
|
||||||
|
};
|
||||||
|
pageFields["pma"] = function () {
|
||||||
|
page.pma = entry[1] == "true";
|
||||||
|
};
|
||||||
|
var regionFields = {};
|
||||||
|
regionFields["xy"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["size"] = function () {
|
||||||
|
region.width = parseInt(entry[1]);
|
||||||
|
region.height = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["bounds"] = function () {
|
||||||
|
region.x = parseInt(entry[1]);
|
||||||
|
region.y = parseInt(entry[2]);
|
||||||
|
region.width = parseInt(entry[3]);
|
||||||
|
region.height = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["offset"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["orig"] = function () {
|
||||||
|
region.originalWidth = parseInt(entry[1]);
|
||||||
|
region.originalHeight = parseInt(entry[2]);
|
||||||
|
};
|
||||||
|
regionFields["offsets"] = function () {
|
||||||
|
region.offsetX = parseInt(entry[1]);
|
||||||
|
region.offsetY = parseInt(entry[2]);
|
||||||
|
region.originalWidth = parseInt(entry[3]);
|
||||||
|
region.originalHeight = parseInt(entry[4]);
|
||||||
|
};
|
||||||
|
regionFields["rotate"] = function () {
|
||||||
|
var value = entry[1];
|
||||||
|
if (value == "true")
|
||||||
|
region.degrees = 90;
|
||||||
|
else if (value != "false")
|
||||||
|
region.degrees = parseInt(value);
|
||||||
|
};
|
||||||
|
regionFields["index"] = function () {
|
||||||
|
region.index = parseInt(entry[1]);
|
||||||
|
};
|
||||||
|
var line = reader.readLine();
|
||||||
|
while (line != null && line.trim().length == 0)
|
||||||
|
line = reader.readLine();
|
||||||
|
while (true) {
|
||||||
|
if (line == null || line.trim().length == 0)
|
||||||
|
break;
|
||||||
|
if (reader.readEntry(entry, line) == 0)
|
||||||
|
break;
|
||||||
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
var names = null;
|
||||||
|
var values = null;
|
||||||
while (true) {
|
while (true) {
|
||||||
var line = reader.readLine();
|
|
||||||
if (line == null)
|
if (line == null)
|
||||||
break;
|
break;
|
||||||
line = line.trim();
|
if (line.trim().length == 0) {
|
||||||
if (line.length == 0)
|
|
||||||
page = null;
|
page = null;
|
||||||
else if (!page) {
|
line = reader.readLine();
|
||||||
|
}
|
||||||
|
else if (page == null) {
|
||||||
page = new TextureAtlasPage();
|
page = new TextureAtlasPage();
|
||||||
page.name = line;
|
page.name = line.trim();
|
||||||
if (reader.readTuple(tuple) == 2) {
|
while (true) {
|
||||||
page.width = parseInt(tuple[0]);
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
||||||
page.height = parseInt(tuple[1]);
|
break;
|
||||||
reader.readTuple(tuple);
|
var field = pageFields[entry[0]];
|
||||||
|
if (field)
|
||||||
|
field();
|
||||||
}
|
}
|
||||||
reader.readTuple(tuple);
|
page.texture = textureLoader(page.name);
|
||||||
page.minFilter = spine.Texture.filterFromString(tuple[0]);
|
|
||||||
page.magFilter = spine.Texture.filterFromString(tuple[1]);
|
|
||||||
var direction = reader.readValue();
|
|
||||||
page.uWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
page.vWrap = spine.TextureWrap.ClampToEdge;
|
|
||||||
if (direction == "x")
|
|
||||||
page.uWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "y")
|
|
||||||
page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
else if (direction == "xy")
|
|
||||||
page.uWrap = page.vWrap = spine.TextureWrap.Repeat;
|
|
||||||
page.texture = textureLoader(line);
|
|
||||||
page.texture.setFilters(page.minFilter, page.magFilter);
|
page.texture.setFilters(page.minFilter, page.magFilter);
|
||||||
page.texture.setWraps(page.uWrap, page.vWrap);
|
page.texture.setWraps(page.uWrap, page.vWrap);
|
||||||
page.width = page.texture.getImage().width;
|
|
||||||
page.height = page.texture.getImage().height;
|
|
||||||
this.pages.push(page);
|
this.pages.push(page);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var region = new TextureAtlasRegion();
|
region = new TextureAtlasRegion();
|
||||||
region.name = line;
|
|
||||||
region.page = page;
|
region.page = page;
|
||||||
var rotateValue = reader.readValue();
|
region.name = line;
|
||||||
if (rotateValue.toLocaleLowerCase() == "true") {
|
while (true) {
|
||||||
region.degrees = 90;
|
var count = reader.readEntry(entry, line = reader.readLine());
|
||||||
}
|
if (count == 0)
|
||||||
else if (rotateValue.toLocaleLowerCase() == "false") {
|
break;
|
||||||
region.degrees = 0;
|
var field = regionFields[entry[0]];
|
||||||
}
|
if (field)
|
||||||
else {
|
field();
|
||||||
region.degrees = parseFloat(rotateValue);
|
else {
|
||||||
}
|
if (names == null) {
|
||||||
region.rotate = region.degrees == 90;
|
names = [];
|
||||||
reader.readTuple(tuple);
|
values = [];
|
||||||
var x = parseInt(tuple[0]);
|
}
|
||||||
var y = parseInt(tuple[1]);
|
names.push(entry[0]);
|
||||||
reader.readTuple(tuple);
|
var entryValues = [];
|
||||||
var width = parseInt(tuple[0]);
|
for (var i = 0; i < count; i++)
|
||||||
var height = parseInt(tuple[1]);
|
entryValues.push(parseInt(entry[i + 1]));
|
||||||
region.u = x / page.width;
|
values.push(entryValues);
|
||||||
region.v = y / page.height;
|
|
||||||
if (region.rotate) {
|
|
||||||
region.u2 = (x + height) / page.width;
|
|
||||||
region.v2 = (y + width) / page.height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
region.u2 = (x + width) / page.width;
|
|
||||||
region.v2 = (y + height) / page.height;
|
|
||||||
}
|
|
||||||
region.x = x;
|
|
||||||
region.y = y;
|
|
||||||
region.width = Math.abs(width);
|
|
||||||
region.height = Math.abs(height);
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
if (reader.readTuple(tuple) == 4) {
|
|
||||||
reader.readTuple(tuple);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region.originalWidth = parseInt(tuple[0]);
|
if (region.originalWidth == 0 && region.originalHeight == 0) {
|
||||||
region.originalHeight = parseInt(tuple[1]);
|
region.originalWidth = region.width;
|
||||||
reader.readTuple(tuple);
|
region.originalHeight = region.height;
|
||||||
region.offsetX = parseInt(tuple[0]);
|
}
|
||||||
region.offsetY = parseInt(tuple[1]);
|
if (names != null && names.length > 0) {
|
||||||
region.index = parseInt(reader.readValue());
|
region.names = names;
|
||||||
|
region.values = values;
|
||||||
|
names = null;
|
||||||
|
values = null;
|
||||||
|
}
|
||||||
|
region.u = region.x / page.width;
|
||||||
|
region.v = region.y / page.height;
|
||||||
|
if (region.degrees == 90) {
|
||||||
|
region.u2 = (region.x + region.height) / page.width;
|
||||||
|
region.v2 = (region.y + region.width) / page.height;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
region.u2 = (region.x + region.width) / page.width;
|
||||||
|
region.v2 = (region.y + region.height) / page.height;
|
||||||
|
}
|
||||||
region.texture = page.texture;
|
region.texture = page.texture;
|
||||||
this.regions.push(region);
|
this.regions.push(region);
|
||||||
}
|
}
|
||||||
@ -7896,33 +7953,36 @@ var spine;
|
|||||||
return null;
|
return null;
|
||||||
return this.lines[this.index++];
|
return this.lines[this.index++];
|
||||||
};
|
};
|
||||||
TextureAtlasReader.prototype.readValue = function () {
|
TextureAtlasReader.prototype.readEntry = function (entry, line) {
|
||||||
var line = this.readLine();
|
if (line == null)
|
||||||
var colon = line.indexOf(":");
|
return 0;
|
||||||
|
line = line.trim();
|
||||||
|
if (line.length == 0)
|
||||||
|
return 0;
|
||||||
|
var colon = line.indexOf(':');
|
||||||
if (colon == -1)
|
if (colon == -1)
|
||||||
throw new Error("Invalid line: " + line);
|
return 0;
|
||||||
return line.substring(colon + 1).trim();
|
entry[0] = line.substr(0, colon).trim();
|
||||||
};
|
for (var i = 1, lastMatch = colon + 1;; i++) {
|
||||||
TextureAtlasReader.prototype.readTuple = function (tuple) {
|
var comma = line.indexOf(',', lastMatch);
|
||||||
var line = this.readLine();
|
if (comma == -1) {
|
||||||
var colon = line.indexOf(":");
|
entry[i] = line.substr(lastMatch).trim();
|
||||||
if (colon == -1)
|
return i;
|
||||||
throw new Error("Invalid line: " + line);
|
}
|
||||||
var i = 0, lastMatch = colon + 1;
|
entry[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
||||||
for (; i < 3; i++) {
|
|
||||||
var comma = line.indexOf(",", lastMatch);
|
|
||||||
if (comma == -1)
|
|
||||||
break;
|
|
||||||
tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
|
|
||||||
lastMatch = comma + 1;
|
lastMatch = comma + 1;
|
||||||
|
if (i == 4)
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
tuple[i] = line.substring(lastMatch).trim();
|
|
||||||
return i + 1;
|
|
||||||
};
|
};
|
||||||
return TextureAtlasReader;
|
return TextureAtlasReader;
|
||||||
}());
|
}());
|
||||||
var TextureAtlasPage = (function () {
|
var TextureAtlasPage = (function () {
|
||||||
function TextureAtlasPage() {
|
function TextureAtlasPage() {
|
||||||
|
this.minFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.magFilter = spine.TextureFilter.Nearest;
|
||||||
|
this.uWrap = spine.TextureWrap.ClampToEdge;
|
||||||
|
this.vWrap = spine.TextureWrap.ClampToEdge;
|
||||||
}
|
}
|
||||||
return TextureAtlasPage;
|
return TextureAtlasPage;
|
||||||
}());
|
}());
|
||||||
@ -9208,7 +9268,7 @@ var spine;
|
|||||||
RegionAttachment.prototype.setRegion = function (region) {
|
RegionAttachment.prototype.setRegion = function (region) {
|
||||||
this.region = region;
|
this.region = region;
|
||||||
var uvs = this.uvs;
|
var uvs = this.uvs;
|
||||||
if (region.rotate) {
|
if (region.degrees == 90) {
|
||||||
uvs[2] = region.u;
|
uvs[2] = region.u;
|
||||||
uvs[3] = region.v2;
|
uvs[3] = region.v2;
|
||||||
uvs[4] = region.u;
|
uvs[4] = region.u;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -91,7 +91,7 @@ module spine.canvas {
|
|||||||
let atlasScale = att.width / w;
|
let atlasScale = att.width / w;
|
||||||
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
ctx.scale(atlasScale * attachment.scaleX, atlasScale * attachment.scaleY);
|
||||||
ctx.translate(w / 2, h / 2);
|
ctx.translate(w / 2, h / 2);
|
||||||
if (attachment.region.rotate) {
|
if (attachment.region.degrees == 90) {
|
||||||
let t = w;
|
let t = w;
|
||||||
w = h;
|
w = h;
|
||||||
h = t;
|
h = t;
|
||||||
|
|||||||
@ -87,7 +87,7 @@ module spine {
|
|||||||
u = 0; v = 0;
|
u = 0; v = 0;
|
||||||
u2 = 0; v2 = 0;
|
u2 = 0; v2 = 0;
|
||||||
width = 0; height = 0;
|
width = 0; height = 0;
|
||||||
degrees = 90;
|
degrees = 0;
|
||||||
offsetX = 0; offsetY = 0;
|
offsetX = 0; offsetY = 0;
|
||||||
originalWidth = 0; originalHeight = 0;
|
originalWidth = 0; originalHeight = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user