mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 14:24:53 +08:00
[cocos2dx] Closes #2501, batch command needs to be created after two color tint vertex colors have been set.
This commit is contained in:
parent
511dd0c1da
commit
da3d1cd4b3
@ -460,17 +460,11 @@ namespace spine {
|
|||||||
trianglesTwoColor.indices = twoColorBatch->allocateIndices(trianglesTwoColor.indexCount);
|
trianglesTwoColor.indices = twoColorBatch->allocateIndices(trianglesTwoColor.indexCount);
|
||||||
memcpy(trianglesTwoColor.indices, _clipper->getClippedTriangles().buffer(), sizeof(unsigned short) * _clipper->getClippedTriangles().size());
|
memcpy(trianglesTwoColor.indices, _clipper->getClippedTriangles().buffer(), sizeof(unsigned short) * _clipper->getClippedTriangles().size());
|
||||||
|
|
||||||
#if COCOS2D_VERSION < 0x00040000
|
|
||||||
TwoColorTrianglesCommand *batchedTriangles = lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture->getName(), _glProgramState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
|
||||||
#else
|
|
||||||
TwoColorTrianglesCommand *batchedTriangles = lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture, _programState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const float *verts = _clipper->getClippedVertices().buffer();
|
const float *verts = _clipper->getClippedVertices().buffer();
|
||||||
const float *uvs = _clipper->getClippedUVs().buffer();
|
const float *uvs = _clipper->getClippedUVs().buffer();
|
||||||
|
|
||||||
V3F_C4B_C4B_T2F *vertex = batchedTriangles->getTriangles().verts;
|
V3F_C4B_C4B_T2F *vertex = trianglesTwoColor.verts;
|
||||||
for (int v = 0, vn = batchedTriangles->getTriangles().vertCount, vv = 0; v < vn; ++v, vv += 2, ++vertex) {
|
for (int v = 0, vn = trianglesTwoColor.vertCount, vv = 0; v < vn; ++v, vv += 2, ++vertex) {
|
||||||
vertex->position.x = verts[vv];
|
vertex->position.x = verts[vv];
|
||||||
vertex->position.y = verts[vv + 1];
|
vertex->position.y = verts[vv + 1];
|
||||||
vertex->texCoords.u = uvs[vv];
|
vertex->texCoords.u = uvs[vv];
|
||||||
@ -478,19 +472,24 @@ namespace spine {
|
|||||||
vertex->color = color4B;
|
vertex->color = color4B;
|
||||||
vertex->color2 = darkColor4B;
|
vertex->color2 = darkColor4B;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
|
||||||
#if COCOS2D_VERSION < 0x00040000
|
#if COCOS2D_VERSION < 0x00040000
|
||||||
TwoColorTrianglesCommand *batchedTriangles = lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture->getName(), _glProgramState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
TwoColorTrianglesCommand *batchedTriangles = lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture->getName(), _glProgramState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
||||||
#else
|
#else
|
||||||
TwoColorTrianglesCommand *batchedTriangles = lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture, _programState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture, _programState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
||||||
#endif
|
#endif
|
||||||
|
} else {
|
||||||
V3F_C4B_C4B_T2F *vertex = batchedTriangles->getTriangles().verts;
|
V3F_C4B_C4B_T2F* vertex = trianglesTwoColor.verts;
|
||||||
for (int v = 0, vn = batchedTriangles->getTriangles().vertCount; v < vn; ++v, ++vertex) {
|
for (int v = 0, vn = trianglesTwoColor.vertCount; v < vn; ++v, ++vertex)
|
||||||
vertex->color = color4B;
|
{
|
||||||
|
vertex->color = color4B;
|
||||||
vertex->color2 = darkColor4B;
|
vertex->color2 = darkColor4B;
|
||||||
}
|
}
|
||||||
|
#if COCOS2D_VERSION < 0x00040000
|
||||||
|
lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture->getName(), _glProgramState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
||||||
|
#else
|
||||||
|
lastTwoColorTrianglesCommand = twoColorBatch->addCommand(renderer, _globalZOrder, texture, _programState, blendFunc, trianglesTwoColor, transform, transformFlags);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_clipper->clipEnd(*slot);
|
_clipper->clipEnd(*slot);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user