diff --git a/spine-c/spine-c/src/spine/SkeletonJson.c b/spine-c/spine-c/src/spine/SkeletonJson.c index c0a0aa8fd..c8a3da95d 100644 --- a/spine-c/spine-c/src/spine/SkeletonJson.c +++ b/spine-c/spine-c/src/spine/SkeletonJson.c @@ -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; diff --git a/spine-cocos2dx/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp b/spine-cocos2dx/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp index 453eac067..9a1ca9262 100644 --- a/spine-cocos2dx/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp +++ b/spine-cocos2dx/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp @@ -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) { diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp index 90f88b254..b6912ed85 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp @@ -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); + } } - } } }