Merge branch '3.7-beta' into 3.7-beta-cpp

This commit is contained in:
badlogic 2018-12-22 15:38:45 +01:00
commit b6686111dc
13 changed files with 33 additions and 43 deletions

View File

@ -78,9 +78,7 @@ package spine.attachments {
attachment.regionWidth = region.width; attachment.regionWidth = region.width;
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;
} }

View File

@ -51,9 +51,7 @@ package spine.attachments {
public var regionWidth : Number; // Unrotated, stripped size. public var regionWidth : Number; // Unrotated, stripped size.
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;

View File

@ -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;

View File

@ -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:

View File

@ -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;

View File

@ -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;

View File

@ -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;
} }

View File

@ -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;

View File

@ -122,9 +122,7 @@ package spine.starling {
attachment.regionWidth = texture.width; attachment.regionWidth = texture.width;
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;