Merge branch '4.0' into 4.1

This commit is contained in:
Mario Zechner 2022-07-18 14:10:10 +02:00
commit 4bba3f1822
3 changed files with 51 additions and 48 deletions

View File

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

View File

@ -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) {

View File

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