mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
Merge branch '4.1' into 4.2-beta
This commit is contained in:
commit
9beeb20d9d
@ -1258,6 +1258,8 @@ spSkeletonData *spSkeletonJson_readSkeletonData(spSkeletonJson *self, const char
|
||||
data->spacingMode = SP_SPACING_MODE_FIXED;
|
||||
else if (strcmp(item, "percent") == 0)
|
||||
data->spacingMode = SP_SPACING_MODE_PERCENT;
|
||||
else
|
||||
data->spacingMode = SP_SPACING_MODE_PROPORTIONAL;
|
||||
|
||||
item = Json_getString(constraintMap, "rotateMode", "tangent");
|
||||
if (strcmp(item, "tangent") == 0) data->rotateMode = SP_ROTATE_MODE_TANGENT;
|
||||
|
||||
@ -40,6 +40,7 @@ using std::max;
|
||||
|
||||
#include "renderer/backend/Device.h"
|
||||
#include "renderer/ccShaders.h"
|
||||
#include "renderer/backend/Types.h"
|
||||
|
||||
namespace spine {
|
||||
|
||||
@ -89,17 +90,17 @@ namespace spine {
|
||||
void SkeletonBatch::updateProgramStateLayout(cocos2d::backend::ProgramState *programState) {
|
||||
auto vertexLayout = programState->getVertexLayout();
|
||||
|
||||
auto locPosition = programState->getAttributeLocation("a_position");
|
||||
auto locTexcoord = programState->getAttributeLocation("a_texCoord");
|
||||
auto locColor = programState->getAttributeLocation("a_color");
|
||||
vertexLayout->setAttribute("a_position", locPosition, backend::VertexFormat::FLOAT3, offsetof(V3F_C4B_T2F, vertices), false);
|
||||
vertexLayout->setAttribute("a_color", locColor, backend::VertexFormat::UBYTE4, offsetof(V3F_C4B_T2F, colors), true);
|
||||
vertexLayout->setAttribute("a_texCoord", locTexcoord, backend::VertexFormat::FLOAT2, offsetof(V3F_C4B_T2F, texCoords), false);
|
||||
auto locPosition = programState->getAttributeLocation(backend::ATTRIBUTE_NAME_POSITION);
|
||||
auto locTexcoord = programState->getAttributeLocation(backend::ATTRIBUTE_NAME_TEXCOORD);
|
||||
auto locColor = programState->getAttributeLocation(backend::ATTRIBUTE_NAME_COLOR);
|
||||
vertexLayout->setAttribute(backend::ATTRIBUTE_NAME_POSITION, locPosition, backend::VertexFormat::FLOAT3, offsetof(V3F_C4B_T2F, vertices), false);
|
||||
vertexLayout->setAttribute(backend::ATTRIBUTE_NAME_COLOR, locColor, backend::VertexFormat::UBYTE4, offsetof(V3F_C4B_T2F, colors), true);
|
||||
vertexLayout->setAttribute(backend::ATTRIBUTE_NAME_TEXCOORD, locTexcoord, backend::VertexFormat::FLOAT2, offsetof(V3F_C4B_T2F, texCoords), false);
|
||||
vertexLayout->setLayout(sizeof(_vertices[0]));
|
||||
|
||||
|
||||
_locMVP = programState->getUniformLocation("u_MVPMatrix");
|
||||
_locTexture = programState->getUniformLocation("u_texture");
|
||||
_locMVP = programState->getUniformLocation(backend::UNIFORM_NAME_MVP_MATRIX);
|
||||
_locTexture = programState->getUniformLocation(backend::UNIFORM_NAME_TEXTURE);
|
||||
}
|
||||
|
||||
void SkeletonBatch::update(float delta) {
|
||||
|
||||
@ -512,43 +512,43 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
|
||||
skeletonData->_defaultSkin = skin;
|
||||
}
|
||||
|
||||
for (attachmentsMap = Json::getItem(skinMap,
|
||||
"attachments")
|
||||
->_child;
|
||||
attachmentsMap; attachmentsMap = attachmentsMap->_next) {
|
||||
SlotData *slot = skeletonData->findSlot(attachmentsMap->_name);
|
||||
Json *attachmentMap;
|
||||
Json *attachments = Json::getItem(skinMap, "attachments");
|
||||
if (attachments)
|
||||
for (attachmentsMap = attachments->_child;
|
||||
attachmentsMap; attachmentsMap = attachmentsMap->_next) {
|
||||
SlotData *slot = skeletonData->findSlot(attachmentsMap->_name);
|
||||
Json *attachmentMap;
|
||||
|
||||
for (attachmentMap = attachmentsMap->_child; attachmentMap; attachmentMap = attachmentMap->_next) {
|
||||
Attachment *attachment = NULL;
|
||||
const char *skinAttachmentName = attachmentMap->_name;
|
||||
const char *attachmentName = Json::getString(attachmentMap, "name", skinAttachmentName);
|
||||
const char *attachmentPath = Json::getString(attachmentMap, "path", attachmentName);
|
||||
const char *color;
|
||||
Json *entry;
|
||||
for (attachmentMap = attachmentsMap->_child; attachmentMap; attachmentMap = attachmentMap->_next) {
|
||||
Attachment *attachment = NULL;
|
||||
const char *skinAttachmentName = attachmentMap->_name;
|
||||
const char *attachmentName = Json::getString(attachmentMap, "name", skinAttachmentName);
|
||||
const char *attachmentPath = Json::getString(attachmentMap, "path", attachmentName);
|
||||
const char *color;
|
||||
Json *entry;
|
||||
|
||||
const char *typeString = Json::getString(attachmentMap, "type", "region");
|
||||
AttachmentType type;
|
||||
if (strcmp(typeString, "region") == 0) type = AttachmentType_Region;
|
||||
else if (strcmp(typeString, "mesh") == 0)
|
||||
type = AttachmentType_Mesh;
|
||||
else if (strcmp(typeString, "linkedmesh") == 0)
|
||||
type = AttachmentType_Linkedmesh;
|
||||
else if (strcmp(typeString, "boundingbox") == 0)
|
||||
type = AttachmentType_Boundingbox;
|
||||
else if (strcmp(typeString, "path") == 0)
|
||||
type = AttachmentType_Path;
|
||||
else if (strcmp(typeString, "clipping") == 0)
|
||||
type = AttachmentType_Clipping;
|
||||
else if (strcmp(typeString, "point") == 0)
|
||||
type = AttachmentType_Point;
|
||||
else {
|
||||
delete skeletonData;
|
||||
setError(root, "Unknown attachment type: ", typeString);
|
||||
return NULL;
|
||||
}
|
||||
const char *typeString = Json::getString(attachmentMap, "type", "region");
|
||||
AttachmentType type;
|
||||
if (strcmp(typeString, "region") == 0) type = AttachmentType_Region;
|
||||
else if (strcmp(typeString, "mesh") == 0)
|
||||
type = AttachmentType_Mesh;
|
||||
else if (strcmp(typeString, "linkedmesh") == 0)
|
||||
type = AttachmentType_Linkedmesh;
|
||||
else if (strcmp(typeString, "boundingbox") == 0)
|
||||
type = AttachmentType_Boundingbox;
|
||||
else if (strcmp(typeString, "path") == 0)
|
||||
type = AttachmentType_Path;
|
||||
else if (strcmp(typeString, "clipping") == 0)
|
||||
type = AttachmentType_Clipping;
|
||||
else if (strcmp(typeString, "point") == 0)
|
||||
type = AttachmentType_Point;
|
||||
else {
|
||||
delete skeletonData;
|
||||
setError(root, "Unknown attachment type: ", typeString);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
switch (type) {
|
||||
case AttachmentType_Region: {
|
||||
Sequence *sequence = readSequence(Json::getItem(attachmentMap, "sequence"));
|
||||
attachment = _attachmentLoader->newRegionAttachment(*skin, attachmentName, attachmentPath, sequence);
|
||||
@ -632,8 +632,8 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
|
||||
bool inheritTimelines = Json::getInt(attachmentMap, "timelines", 1) ? true : false;
|
||||
LinkedMesh *linkedMesh = new (__FILE__, __LINE__) LinkedMesh(mesh,
|
||||
String(Json::getString(
|
||||
attachmentMap,
|
||||
"skin", 0)),
|
||||
attachmentMap,
|
||||
"skin", 0)),
|
||||
slot->getIndex(),
|
||||
String(entry->_valueString),
|
||||
inheritTimelines);
|
||||
@ -661,7 +661,7 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
|
||||
int vertexCount = 0;
|
||||
pathAttatchment->_closed = Json::getInt(attachmentMap, "closed", 0) ? true : false;
|
||||
pathAttatchment->_constantSpeed = Json::getInt(attachmentMap, "constantSpeed", 1) ? true
|
||||
: false;
|
||||
: false;
|
||||
vertexCount = Json::getInt(attachmentMap, "vertexCount", 0);
|
||||
readVertices(attachmentMap, pathAttatchment, vertexCount << 1);
|
||||
|
||||
@ -704,11 +704,11 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
|
||||
_attachmentLoader->configureAttachment(attachment);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
skin->setAttachment(slot->getIndex(), skinAttachmentName, attachment);
|
||||
skin->setAttachment(slot->getIndex(), skinAttachmentName, attachment);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ For the official legal terms governing the Spine Runtimes, please read the [Spin
|
||||
|
||||
## Spine version
|
||||
|
||||
spine-godot works with data exported from Spine 4.2.xx.
|
||||
spine-godot works with data exported from Spine 4.1.xx.
|
||||
|
||||
spine-godot supports all Spine features, except two-color tinting and the screen blend mode.
|
||||
|
||||
@ -30,10 +30,10 @@ spine-godot works with the latest stable Godot 3.4 release. It requires compilat
|
||||
|
||||
We provide prebuilt Godot editor and export template binaries for Godot 3.4.4-stable:
|
||||
|
||||
* [Godot Editor Windows](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-windows.zip)
|
||||
* [Godot Editor Linux](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-linux.zip)
|
||||
* [Godot Editor macOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-macos.zip)
|
||||
* [Godot export templates for Windows, Linux, macOS, Web, Android, iOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/spine-godot-templates-4.2-beta-3.4.4-stable.tpz)
|
||||
* [Godot Editor Windows](https://spine-godot.s3.eu-central-1.amazonaws.com/4.1/3.4.4-stable/godot-editor-windows.zip)
|
||||
* [Godot Editor Linux](https://spine-godot.s3.eu-central-1.amazonaws.com/4.1/3.4.4-stable/godot-editor-linux.zip)
|
||||
* [Godot Editor macOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.1/3.4.4-stable/godot-editor-macos.zip)
|
||||
* [Godot export templates for Windows, Linux, macOS, Web, Android, iOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.1/3.4.4-stable/spine-godot-templates-4.1-3.4.4-stable.tpz)
|
||||
|
||||
### Building the Godot editor and export templates locally
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<groupId>com.esotericsoftware.spine</groupId>
|
||||
<artifactId>spine-libgdx</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
<version>4.1.1-SNAPSHOT</version>
|
||||
|
||||
|
||||
<name>spine-libgdx</name>
|
||||
@ -39,7 +39,7 @@
|
||||
<connection>scm:git:https://github.com/EsotericSoftware/spine-runtimes.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/EsotericSoftware/spine-runtimes.git</developerConnection>
|
||||
<url>https://github.com/EsotericSoftware/spine-runtimes/</url>
|
||||
<tag>4.0.02.1</tag>
|
||||
<tag>spine-libgdx-4.1.0</tag>
|
||||
</scm>
|
||||
|
||||
<repositories>
|
||||
|
||||
@ -193,7 +193,7 @@ namespace Spine.Unity.Editor {
|
||||
}
|
||||
|
||||
if (changeCheck.changed) {
|
||||
if (requiresReload || serializedObject.ApplyModifiedProperties()) {
|
||||
if (serializedObject.ApplyModifiedProperties() || requiresReload) {
|
||||
this.Clear();
|
||||
this.InitializeEditor();
|
||||
|
||||
|
||||
@ -105,7 +105,7 @@ namespace Spine.Unity.TK2D {
|
||||
page.rendererObject = material;
|
||||
region.page = page;
|
||||
region.u = u;
|
||||
region.u = v;
|
||||
region.v = v;
|
||||
region.u2 = u2;
|
||||
region.v2 = v2;
|
||||
region.rotate = regionRotated;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user