mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-25 22:23:42 +08:00
Merge branch '3.7-beta' into 3.7-beta-cpp
This commit is contained in:
commit
b6686111dc
Binary file not shown.
@ -79,8 +79,6 @@ package spine.attachments {
|
|||||||
attachment.regionHeight = region.height;
|
attachment.regionHeight = region.height;
|
||||||
attachment.regionOriginalWidth = region.originalWidth;
|
attachment.regionOriginalWidth = region.originalWidth;
|
||||||
attachment.regionOriginalHeight = region.originalHeight;
|
attachment.regionOriginalHeight = region.originalHeight;
|
||||||
attachment.regionTextureWidth = region.page.width;
|
|
||||||
attachment.regionTextureHeight = region.page.height;
|
|
||||||
return attachment;
|
return attachment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,8 +52,6 @@ package spine.attachments {
|
|||||||
public var regionHeight : Number;
|
public var regionHeight : Number;
|
||||||
public var regionOriginalWidth : Number; // Unrotated, unstripped size.
|
public var regionOriginalWidth : Number; // Unrotated, unstripped size.
|
||||||
public var regionOriginalHeight : Number;
|
public var regionOriginalHeight : Number;
|
||||||
public var regionTextureWidth: Number;
|
|
||||||
public var regionTextureHeight: Number;
|
|
||||||
// Nonessential.
|
// Nonessential.
|
||||||
public var edges : Vector.<int>;
|
public var edges : Vector.<int>;
|
||||||
public var width : Number;
|
public var width : Number;
|
||||||
@ -66,29 +64,26 @@ package spine.attachments {
|
|||||||
public function updateUVs() : void {
|
public function updateUVs() : void {
|
||||||
var i : int, n : int = regionUVs.length;
|
var i : int, n : int = regionUVs.length;
|
||||||
var u: Number, v: Number, width: Number, height: Number;
|
var u: Number, v: Number, width: Number, height: Number;
|
||||||
var widthO : Number = regionU2 - regionU, heightO : Number = regionV2 - regionV;
|
var textureWidth: Number, textureHeight: Number;
|
||||||
var uO = regionU, vO = regionV;
|
|
||||||
if (!uvs || uvs.length != n) uvs = new Vector.<Number>(n, true);
|
if (!uvs || uvs.length != n) uvs = new Vector.<Number>(n, true);
|
||||||
if (regionRotate) {
|
if (regionRotate) {
|
||||||
u = regionU - (regionOriginalHeight - regionOffsetY - regionHeight) / regionTextureWidth;
|
textureHeight = regionWidth / (regionV2 - regionV);
|
||||||
v = regionV - (regionOriginalWidth - regionOffsetX - regionWidth) / regionTextureHeight;
|
textureWidth = regionHeight / (regionU2 - regionU);
|
||||||
width = regionOriginalHeight / regionTextureWidth;
|
u = regionU - (regionOriginalHeight - regionOffsetY - regionHeight) / textureWidth;
|
||||||
height = regionOriginalWidth / regionTextureHeight;
|
v = regionV - (regionOriginalWidth - regionOffsetX - regionWidth) / textureHeight;
|
||||||
if (u != uO || v != vO || width != widthO || heightO != height) {
|
width = regionOriginalHeight / textureWidth;
|
||||||
trace("fah");
|
height = regionOriginalWidth / textureHeight;
|
||||||
}
|
|
||||||
for (i = 0; i < n; i += 2) {
|
for (i = 0; i < n; i += 2) {
|
||||||
uvs[i] = u + regionUVs[int(i + 1)] * width;
|
uvs[i] = u + regionUVs[int(i + 1)] * width;
|
||||||
uvs[int(i + 1)] = v + height - regionUVs[i] * height;
|
uvs[int(i + 1)] = v + height - regionUVs[i] * height;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
u = regionU - regionOffsetX / regionTextureWidth;
|
textureWidth = regionWidth / (regionU2 - regionU);
|
||||||
v = regionV - (regionOriginalHeight - regionOffsetY - regionHeight) / regionTextureHeight;
|
textureHeight = regionHeight / (regionV2 - regionV);
|
||||||
width = regionOriginalWidth / regionTextureWidth;
|
u = regionU - regionOffsetX / textureWidth;
|
||||||
height = regionOriginalHeight / regionTextureHeight;
|
v = regionV - (regionOriginalHeight - regionOffsetY - regionHeight) / textureHeight;
|
||||||
if (u != uO || v != vO || width != widthO || heightO != height) {
|
width = regionOriginalWidth / textureWidth;
|
||||||
trace("fah");
|
height = regionOriginalHeight / textureHeight;
|
||||||
}
|
|
||||||
for (i = 0; i < n; i += 2) {
|
for (i = 0; i < n; i += 2) {
|
||||||
uvs[i] = u + regionUVs[i] * width;
|
uvs[i] = u + regionUVs[i] * width;
|
||||||
uvs[int(i + 1)] = v + regionUVs[int(i + 1)] * height;
|
uvs[int(i + 1)] = v + regionUVs[int(i + 1)] * height;
|
||||||
|
|||||||
@ -51,7 +51,6 @@ struct spMeshAttachment {
|
|||||||
int regionOriginalWidth, regionOriginalHeight; /* Unrotated, unstripped pixel size. */
|
int regionOriginalWidth, regionOriginalHeight; /* Unrotated, unstripped pixel size. */
|
||||||
float regionU, regionV, regionU2, regionV2;
|
float regionU, regionV, regionU2, regionV2;
|
||||||
int/*bool*/regionRotate;
|
int/*bool*/regionRotate;
|
||||||
float regionTextureWidth, regionTextureHeight;
|
|
||||||
|
|
||||||
const char* path;
|
const char* path;
|
||||||
|
|
||||||
|
|||||||
@ -74,8 +74,6 @@ spAttachment* _spAtlasAttachmentLoader_createAttachment (spAttachmentLoader* loa
|
|||||||
attachment->regionHeight = region->height;
|
attachment->regionHeight = region->height;
|
||||||
attachment->regionOriginalWidth = region->originalWidth;
|
attachment->regionOriginalWidth = region->originalWidth;
|
||||||
attachment->regionOriginalHeight = region->originalHeight;
|
attachment->regionOriginalHeight = region->originalHeight;
|
||||||
attachment->regionTextureWidth = region->page->width;
|
|
||||||
attachment->regionTextureHeight = region->page->height;
|
|
||||||
return SUPER(SUPER(attachment));
|
return SUPER(SUPER(attachment));
|
||||||
}
|
}
|
||||||
case SP_ATTACHMENT_BOUNDING_BOX:
|
case SP_ATTACHMENT_BOUNDING_BOX:
|
||||||
|
|||||||
@ -60,9 +60,9 @@ void spMeshAttachment_updateUVs (spMeshAttachment* self) {
|
|||||||
FREE(self->uvs);
|
FREE(self->uvs);
|
||||||
self->uvs = MALLOC(float, verticesLength);
|
self->uvs = MALLOC(float, verticesLength);
|
||||||
|
|
||||||
float textureWidth = self->regionTextureWidth;
|
|
||||||
float textureHeight = self->regionTextureHeight;
|
|
||||||
if (self->regionRotate) {
|
if (self->regionRotate) {
|
||||||
|
float textureWidth = self->regionHeight / (self->regionU2 - self->regionU);
|
||||||
|
float textureHeight = self->regionWidth / (self->regionV2 - self->regionV);
|
||||||
float u = self->regionU - (self->regionOriginalHeight - self->regionOffsetY - self->regionHeight) / textureWidth;
|
float u = self->regionU - (self->regionOriginalHeight - self->regionOffsetY - self->regionHeight) / textureWidth;
|
||||||
float v = self->regionV - (self->regionOriginalWidth - self->regionOffsetX - self->regionWidth) / textureHeight;
|
float v = self->regionV - (self->regionOriginalWidth - self->regionOffsetX - self->regionWidth) / textureHeight;
|
||||||
width = self->regionOriginalHeight / textureWidth;
|
width = self->regionOriginalHeight / textureWidth;
|
||||||
@ -73,6 +73,8 @@ void spMeshAttachment_updateUVs (spMeshAttachment* self) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
float textureWidth = self->regionWidth / (self->regionU2 - self->regionU);
|
||||||
|
float textureHeight = self->regionHeight / (self->regionV2 - self->regionV);
|
||||||
float u = self->regionU - self->regionOffsetX / textureWidth;
|
float u = self->regionU - self->regionOffsetX / textureWidth;
|
||||||
float v = self->regionV - (self->regionOriginalHeight - self->regionOffsetY - self->regionHeight) / textureHeight;
|
float v = self->regionV - (self->regionOriginalHeight - self->regionOffsetY - self->regionHeight) / textureHeight;
|
||||||
width = self->regionOriginalWidth / textureWidth;
|
width = self->regionOriginalWidth / textureWidth;
|
||||||
|
|||||||
@ -119,7 +119,7 @@ namespace spine {
|
|||||||
void setHeight(float inValue);
|
void setHeight(float inValue);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float _regionOffsetX, _regionOffsetY, _regionWidth, _regionHeight, _regionOriginalWidth, _regionOriginalHeight, _regionTextureWidth, _regionTextureHeight;
|
float _regionOffsetX, _regionOffsetY, _regionWidth, _regionHeight, _regionOriginalWidth, _regionOriginalHeight;
|
||||||
MeshAttachment* _parentMesh;
|
MeshAttachment* _parentMesh;
|
||||||
Vector<float> _uvs;
|
Vector<float> _uvs;
|
||||||
Vector<float> _regionUVs;
|
Vector<float> _regionUVs;
|
||||||
|
|||||||
@ -94,8 +94,6 @@ MeshAttachment *AtlasAttachmentLoader::newMeshAttachment(Skin &skin, const Strin
|
|||||||
attachment._regionHeight = (float)region.height;
|
attachment._regionHeight = (float)region.height;
|
||||||
attachment._regionOriginalWidth = (float)region.originalWidth;
|
attachment._regionOriginalWidth = (float)region.originalWidth;
|
||||||
attachment._regionOriginalHeight = (float)region.originalHeight;
|
attachment._regionOriginalHeight = (float)region.originalHeight;
|
||||||
attachment._regionTextureWidth = (float)region.page->width;
|
|
||||||
attachment._regionTextureHeight = (float)region.page->height;
|
|
||||||
|
|
||||||
return attachmentP;
|
return attachmentP;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,8 +46,6 @@ MeshAttachment::MeshAttachment(const String &name) : VertexAttachment(name), Has
|
|||||||
_regionHeight(0),
|
_regionHeight(0),
|
||||||
_regionOriginalWidth(0),
|
_regionOriginalWidth(0),
|
||||||
_regionOriginalHeight(0),
|
_regionOriginalHeight(0),
|
||||||
_regionTextureWidth(0),
|
|
||||||
_regionTextureHeight(0),
|
|
||||||
_parentMesh(NULL),
|
_parentMesh(NULL),
|
||||||
_path(),
|
_path(),
|
||||||
_regionU(0),
|
_regionU(0),
|
||||||
@ -70,19 +68,23 @@ void MeshAttachment::updateUVs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_regionRotate) {
|
if (_regionRotate) {
|
||||||
float u = _regionU - (_regionOriginalHeight - _regionOffsetY - _regionHeight) / _regionTextureWidth;
|
float textureHeight = _regionWidth / (_regionV2 - _regionV);
|
||||||
float v = _regionV - (_regionOriginalWidth - _regionOffsetX - _regionWidth) / _regionTextureHeight;
|
float textureWidth = _regionHeight / (_regionU2 - _regionU);
|
||||||
float width = _regionOriginalHeight / _regionTextureWidth;
|
float u = _regionU - (_regionOriginalHeight - _regionOffsetY - _regionHeight) / textureWidth;
|
||||||
float height = _regionOriginalWidth / _regionTextureHeight;
|
float v = _regionV - (_regionOriginalWidth - _regionOffsetX - _regionWidth) / textureHeight;
|
||||||
|
float width = _regionOriginalHeight / textureWidth;
|
||||||
|
float height = _regionOriginalWidth / textureHeight;
|
||||||
for (size_t i = 0, n = _uvs.size(); i < n; i += 2) {
|
for (size_t i = 0, n = _uvs.size(); i < n; i += 2) {
|
||||||
_uvs[i] = u + _regionUVs[i + 1] * width;
|
_uvs[i] = u + _regionUVs[i + 1] * width;
|
||||||
_uvs[i + 1] = v + height - _regionUVs[i] * height;
|
_uvs[i + 1] = v + height - _regionUVs[i] * height;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
float u = _regionU - _regionOffsetX / _regionTextureWidth;
|
float textureWidth = _regionWidth / (_regionU2 - _regionU);
|
||||||
float v = _regionV - (_regionOriginalHeight - _regionOffsetY - _regionHeight) / _regionTextureHeight;
|
float textureHeight = _regionHeight / (_regionV2 - _regionV);
|
||||||
float width = _regionOriginalWidth / _regionTextureWidth;
|
float u = _regionU - _regionOffsetX / textureWidth;
|
||||||
float height = _regionOriginalHeight / _regionTextureHeight;
|
float v = _regionV - (_regionOriginalHeight - _regionOffsetY - _regionHeight) / textureHeight;
|
||||||
|
float width = _regionOriginalWidth / textureWidth;
|
||||||
|
float height = _regionOriginalHeight / textureHeight;
|
||||||
for (size_t i = 0, n = _uvs.size(); i < n; i += 2) {
|
for (size_t i = 0, n = _uvs.size(); i < n; i += 2) {
|
||||||
_uvs[i] = u + _regionUVs[i] * width;
|
_uvs[i] = u + _regionUVs[i] * width;
|
||||||
_uvs[i + 1] = v + _regionUVs[i + 1] * height;
|
_uvs[i + 1] = v + _regionUVs[i + 1] * height;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -123,8 +123,6 @@ package spine.starling {
|
|||||||
attachment.regionHeight = texture.height;
|
attachment.regionHeight = texture.height;
|
||||||
attachment.regionOriginalWidth = frame ? frame.width : texture.width;
|
attachment.regionOriginalWidth = frame ? frame.width : texture.width;
|
||||||
attachment.regionOriginalHeight = frame ? frame.height : texture.height;
|
attachment.regionOriginalHeight = frame ? frame.height : texture.height;
|
||||||
attachment.regionTextureWidth = atlas.texture.width;
|
|
||||||
attachment.regionTextureHeight = atlas.texture.height;
|
|
||||||
if (rotated) {
|
if (rotated) {
|
||||||
var tmp : Number = attachment.regionOriginalWidth;
|
var tmp : Number = attachment.regionOriginalWidth;
|
||||||
attachment.regionOriginalWidth = attachment.regionOriginalHeight;
|
attachment.regionOriginalWidth = attachment.regionOriginalHeight;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user