mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-22 02:06:03 +08:00
[cocos2dx][cpp] More changes to computeWorldVertices.
This commit is contained in:
parent
f12728f0d2
commit
c405dcd165
@ -57,41 +57,41 @@ using std::max;
|
|||||||
|
|
||||||
namespace spine {
|
namespace spine {
|
||||||
|
|
||||||
static Cocos2dTextureLoader textureLoader;
|
static Cocos2dTextureLoader textureLoader;
|
||||||
|
|
||||||
void SkeletonRenderer::destroyScratchBuffers() {
|
void SkeletonRenderer::destroyScratchBuffers() {
|
||||||
if (worldVertices) {
|
if (worldVertices) {
|
||||||
delete[] worldVertices;
|
delete[] worldVertices;
|
||||||
worldVertices = nullptr;
|
worldVertices = nullptr;
|
||||||
worldVerticesLength = 0;
|
worldVerticesLength = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer* SkeletonRenderer::createWithSkeleton(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData) {
|
SkeletonRenderer* SkeletonRenderer::createWithSkeleton(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData) {
|
||||||
SkeletonRenderer* node = new SkeletonRenderer(skeleton, ownsSkeleton, ownsSkeletonData);
|
SkeletonRenderer* node = new SkeletonRenderer(skeleton, ownsSkeleton, ownsSkeletonData);
|
||||||
node->autorelease();
|
node->autorelease();
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer* SkeletonRenderer::createWithData (SkeletonData* skeletonData, bool ownsSkeletonData) {
|
SkeletonRenderer* SkeletonRenderer::createWithData (SkeletonData* skeletonData, bool ownsSkeletonData) {
|
||||||
SkeletonRenderer* node = new SkeletonRenderer(skeletonData, ownsSkeletonData);
|
SkeletonRenderer* node = new SkeletonRenderer(skeletonData, ownsSkeletonData);
|
||||||
node->autorelease();
|
node->autorelease();
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer* SkeletonRenderer::createWithFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
SkeletonRenderer* SkeletonRenderer::createWithFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
||||||
SkeletonRenderer* node = new SkeletonRenderer(skeletonDataFile, atlas, scale);
|
SkeletonRenderer* node = new SkeletonRenderer(skeletonDataFile, atlas, scale);
|
||||||
node->autorelease();
|
node->autorelease();
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer* SkeletonRenderer::createWithFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
SkeletonRenderer* SkeletonRenderer::createWithFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
||||||
SkeletonRenderer* node = new SkeletonRenderer(skeletonDataFile, atlasFile, scale);
|
SkeletonRenderer* node = new SkeletonRenderer(skeletonDataFile, atlasFile, scale);
|
||||||
node->autorelease();
|
node->autorelease();
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initialize () {
|
void SkeletonRenderer::initialize () {
|
||||||
if (!worldVertices) {
|
if (!worldVertices) {
|
||||||
worldVertices = new float[INITIAL_WORLD_VERTICES_LENGTH];
|
worldVertices = new float[INITIAL_WORLD_VERTICES_LENGTH];
|
||||||
worldVerticesLength = INITIAL_WORLD_VERTICES_LENGTH;
|
worldVerticesLength = INITIAL_WORLD_VERTICES_LENGTH;
|
||||||
@ -106,9 +106,9 @@ void SkeletonRenderer::initialize () {
|
|||||||
|
|
||||||
_skeleton->setToSetupPose();
|
_skeleton->setToSetupPose();
|
||||||
_skeleton->updateWorldTransform();
|
_skeleton->updateWorldTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setupGLProgramState (bool twoColorTintEnabled) {
|
void SkeletonRenderer::setupGLProgramState (bool twoColorTintEnabled) {
|
||||||
if (twoColorTintEnabled) {
|
if (twoColorTintEnabled) {
|
||||||
setGLProgramState(SkeletonTwoColorBatch::getInstance()->getTwoColorTintProgramState());
|
setGLProgramState(SkeletonTwoColorBatch::getInstance()->getTwoColorTintProgramState());
|
||||||
return;
|
return;
|
||||||
@ -133,61 +133,61 @@ void SkeletonRenderer::setupGLProgramState (bool twoColorTintEnabled) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP, texture));
|
setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP, texture));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setSkeletonData (SkeletonData *skeletonData, bool ownsSkeletonData) {
|
void SkeletonRenderer::setSkeletonData (SkeletonData *skeletonData, bool ownsSkeletonData) {
|
||||||
_skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
_skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
||||||
_ownsSkeletonData = ownsSkeletonData;
|
_ownsSkeletonData = ownsSkeletonData;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::SkeletonRenderer ()
|
SkeletonRenderer::SkeletonRenderer ()
|
||||||
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::SkeletonRenderer(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData, bool ownsAtlas)
|
SkeletonRenderer::SkeletonRenderer(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData, bool ownsAtlas)
|
||||||
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
||||||
initWithSkeleton(skeleton, ownsSkeleton, ownsSkeletonData, ownsAtlas);
|
initWithSkeleton(skeleton, ownsSkeleton, ownsSkeletonData, ownsAtlas);
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::SkeletonRenderer (SkeletonData *skeletonData, bool ownsSkeletonData)
|
SkeletonRenderer::SkeletonRenderer (SkeletonData *skeletonData, bool ownsSkeletonData)
|
||||||
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
||||||
initWithData(skeletonData, ownsSkeletonData);
|
initWithData(skeletonData, ownsSkeletonData);
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, Atlas* atlas, float scale)
|
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, Atlas* atlas, float scale)
|
||||||
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
||||||
initWithJsonFile(skeletonDataFile, atlas, scale);
|
initWithJsonFile(skeletonDataFile, atlas, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale)
|
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale)
|
||||||
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
: _atlas(nullptr), _attachmentLoader(nullptr), _debugSlots(false), _debugBones(false), _debugMeshes(false), _timeScale(1), _effect(nullptr), _startSlotIndex(-1), _endSlotIndex(-1) {
|
||||||
initWithJsonFile(skeletonDataFile, atlasFile, scale);
|
initWithJsonFile(skeletonDataFile, atlasFile, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonRenderer::~SkeletonRenderer () {
|
SkeletonRenderer::~SkeletonRenderer () {
|
||||||
if (_ownsSkeletonData) delete _skeleton->getData();
|
if (_ownsSkeletonData) delete _skeleton->getData();
|
||||||
if (_ownsSkeleton) delete _skeleton;
|
if (_ownsSkeleton) delete _skeleton;
|
||||||
if (_ownsAtlas && _atlas) delete _atlas;
|
if (_ownsAtlas && _atlas) delete _atlas;
|
||||||
if (_attachmentLoader) delete _attachmentLoader;
|
if (_attachmentLoader) delete _attachmentLoader;
|
||||||
delete _clipper;
|
delete _clipper;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithSkeleton(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData, bool ownsAtlas) {
|
void SkeletonRenderer::initWithSkeleton(Skeleton* skeleton, bool ownsSkeleton, bool ownsSkeletonData, bool ownsAtlas) {
|
||||||
_skeleton = skeleton;
|
_skeleton = skeleton;
|
||||||
_ownsSkeleton = ownsSkeleton;
|
_ownsSkeleton = ownsSkeleton;
|
||||||
_ownsSkeletonData = ownsSkeletonData;
|
_ownsSkeletonData = ownsSkeletonData;
|
||||||
_ownsAtlas = ownsAtlas;
|
_ownsAtlas = ownsAtlas;
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithData (SkeletonData* skeletonData, bool ownsSkeletonData) {
|
void SkeletonRenderer::initWithData (SkeletonData* skeletonData, bool ownsSkeletonData) {
|
||||||
_ownsSkeleton = true;
|
_ownsSkeleton = true;
|
||||||
setSkeletonData(skeletonData, ownsSkeletonData);
|
setSkeletonData(skeletonData, ownsSkeletonData);
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
||||||
_atlas = atlas;
|
_atlas = atlas;
|
||||||
_attachmentLoader = new (__FILE__, __LINE__) Cocos2dAtlasAttachmentLoader(_atlas);
|
_attachmentLoader = new (__FILE__, __LINE__) Cocos2dAtlasAttachmentLoader(_atlas);
|
||||||
|
|
||||||
@ -201,9 +201,9 @@ void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, At
|
|||||||
setSkeletonData(skeletonData, true);
|
setSkeletonData(skeletonData, true);
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
||||||
_atlas = new (__FILE__, __LINE__) Atlas(atlasFile.c_str(), &textureLoader);
|
_atlas = new (__FILE__, __LINE__) Atlas(atlasFile.c_str(), &textureLoader);
|
||||||
CCASSERT(_atlas, "Error reading atlas file.");
|
CCASSERT(_atlas, "Error reading atlas file.");
|
||||||
|
|
||||||
@ -220,9 +220,9 @@ void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, co
|
|||||||
setSkeletonData(skeletonData, true);
|
setSkeletonData(skeletonData, true);
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile, Atlas* atlas, float scale) {
|
||||||
_atlas = atlas;
|
_atlas = atlas;
|
||||||
_attachmentLoader = new (__FILE__, __LINE__) Cocos2dAtlasAttachmentLoader(_atlas);
|
_attachmentLoader = new (__FILE__, __LINE__) Cocos2dAtlasAttachmentLoader(_atlas);
|
||||||
|
|
||||||
@ -235,9 +235,9 @@ void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile,
|
|||||||
setSkeletonData(skeletonData, true);
|
setSkeletonData(skeletonData, true);
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
|
||||||
_atlas = new (__FILE__, __LINE__) Atlas(atlasFile.c_str(), &textureLoader);
|
_atlas = new (__FILE__, __LINE__) Atlas(atlasFile.c_str(), &textureLoader);
|
||||||
CCASSERT(_atlas, "Error reading atlas file.");
|
CCASSERT(_atlas, "Error reading atlas file.");
|
||||||
|
|
||||||
@ -253,14 +253,14 @@ void SkeletonRenderer::initWithBinaryFile (const std::string& skeletonDataFile,
|
|||||||
setSkeletonData(skeletonData, true);
|
setSkeletonData(skeletonData, true);
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::update (float deltaTime) {
|
void SkeletonRenderer::update (float deltaTime) {
|
||||||
Node::update(deltaTime);
|
Node::update(deltaTime);
|
||||||
if (_ownsSkeleton) _skeleton->update(deltaTime * _timeScale);
|
if (_ownsSkeleton) _skeleton->update(deltaTime * _timeScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t transformFlags) {
|
void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t transformFlags) {
|
||||||
SkeletonBatch* batch = SkeletonBatch::getInstance();
|
SkeletonBatch* batch = SkeletonBatch::getInstance();
|
||||||
SkeletonTwoColorBatch* twoColorBatch = SkeletonTwoColorBatch::getInstance();
|
SkeletonTwoColorBatch* twoColorBatch = SkeletonTwoColorBatch::getInstance();
|
||||||
bool isTwoColorTint = this->isTwoColorTint();
|
bool isTwoColorTint = this->isTwoColorTint();
|
||||||
@ -363,8 +363,7 @@ void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t
|
|||||||
triangles.verts = batch->allocateVertices(attachmentVertices->_triangles->vertCount);
|
triangles.verts = batch->allocateVertices(attachmentVertices->_triangles->vertCount);
|
||||||
triangles.vertCount = attachmentVertices->_triangles->vertCount;
|
triangles.vertCount = attachmentVertices->_triangles->vertCount;
|
||||||
memcpy(triangles.verts, attachmentVertices->_triangles->verts, sizeof(cocos2d::V3F_C4B_T2F) * attachmentVertices->_triangles->vertCount);
|
memcpy(triangles.verts, attachmentVertices->_triangles->verts, sizeof(cocos2d::V3F_C4B_T2F) * attachmentVertices->_triangles->vertCount);
|
||||||
int vertexSizeInFloats = sizeof(cocos2d::V3F_C4B_T2F) / sizeof(float);
|
attachment->computeWorldVertices(*slot, 0, attachment->getWorldVerticesLength(), (float*)triangles.verts, 0, 6);
|
||||||
spVertexAttachment_computeWorldVertices(SUPER(attachment), slot, 0, attachment->getWorldVerticesLength(), (float*)triangles.verts, 0, vertexSizeInFloats);
|
|
||||||
} else {
|
} else {
|
||||||
trianglesTwoColor.indices = attachmentVertices->_triangles->indices;
|
trianglesTwoColor.indices = attachmentVertices->_triangles->indices;
|
||||||
trianglesTwoColor.indexCount = attachmentVertices->_triangles->indexCount;
|
trianglesTwoColor.indexCount = attachmentVertices->_triangles->indexCount;
|
||||||
@ -373,8 +372,7 @@ void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t
|
|||||||
for (int i = 0; i < trianglesTwoColor.vertCount; i++) {
|
for (int i = 0; i < trianglesTwoColor.vertCount; i++) {
|
||||||
trianglesTwoColor.verts[i].texCoords = attachmentVertices->_triangles->verts[i].texCoords;
|
trianglesTwoColor.verts[i].texCoords = attachmentVertices->_triangles->verts[i].texCoords;
|
||||||
}
|
}
|
||||||
int vertexSizeInFloats = sizeof(V3F_C4B_C4B_T2F) / sizeof(float);
|
attachment->computeWorldVertices(*slot, 0, attachment->getWorldVerticesLength(), (float*)trianglesTwoColor.verts, 0, 7);
|
||||||
spVertexAttachment_computeWorldVertices(SUPER(attachment), slot, 0, attachment->getWorldVerticesLength(), (float*)trianglesTwoColor.verts, 0, vertexSizeInFloats);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
color.r = attachment->getColor().r;
|
color.r = attachment->getColor().r;
|
||||||
@ -675,9 +673,9 @@ void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t
|
|||||||
if (_debugSlots || _debugBones || _debugMeshes) {
|
if (_debugSlots || _debugBones || _debugMeshes) {
|
||||||
drawDebug(renderer, transform, transformFlags);
|
drawDebug(renderer, transform, transformFlags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::drawDebug (Renderer* renderer, const Mat4 &transform, uint32_t transformFlags) {
|
void SkeletonRenderer::drawDebug (Renderer* renderer, const Mat4 &transform, uint32_t transformFlags) {
|
||||||
|
|
||||||
Director* director = Director::getInstance();
|
Director* director = Director::getInstance();
|
||||||
director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
|
director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
|
||||||
@ -744,9 +742,9 @@ void SkeletonRenderer::drawDebug (Renderer* renderer, const Mat4 &transform, uin
|
|||||||
|
|
||||||
drawNode->draw(renderer, transform, transformFlags);
|
drawNode->draw(renderer, transform, transformFlags);
|
||||||
director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
|
director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect SkeletonRenderer::getBoundingBox () const {
|
Rect SkeletonRenderer::getBoundingBox () const {
|
||||||
float minX = FLT_MAX, minY = FLT_MAX, maxX = -FLT_MAX, maxY = -FLT_MAX;
|
float minX = FLT_MAX, minY = FLT_MAX, maxX = -FLT_MAX, maxY = -FLT_MAX;
|
||||||
float scaleX = getScaleX(), scaleY = getScaleY();
|
float scaleX = getScaleX(), scaleY = getScaleY();
|
||||||
for (int i = 0; i < _skeleton->getSlots().size(); ++i) {
|
for (int i = 0; i < _skeleton->getSlots().size(); ++i) {
|
||||||
@ -775,130 +773,130 @@ Rect SkeletonRenderer::getBoundingBox () const {
|
|||||||
Vec2 position = getPosition();
|
Vec2 position = getPosition();
|
||||||
if (minX == FLT_MAX) minX = minY = maxX = maxY = 0;
|
if (minX == FLT_MAX) minX = minY = maxX = maxY = 0;
|
||||||
return Rect(position.x + minX, position.y + minY, maxX - minX, maxY - minY);
|
return Rect(position.x + minX, position.y + minY, maxX - minX, maxY - minY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Convenience methods for Skeleton_* functions.
|
// --- Convenience methods for Skeleton_* functions.
|
||||||
|
|
||||||
void SkeletonRenderer::updateWorldTransform () {
|
void SkeletonRenderer::updateWorldTransform () {
|
||||||
_skeleton->updateWorldTransform();
|
_skeleton->updateWorldTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setToSetupPose () {
|
void SkeletonRenderer::setToSetupPose () {
|
||||||
_skeleton->setToSetupPose();
|
_skeleton->setToSetupPose();
|
||||||
}
|
}
|
||||||
void SkeletonRenderer::setBonesToSetupPose () {
|
void SkeletonRenderer::setBonesToSetupPose () {
|
||||||
_skeleton->setBonesToSetupPose();
|
_skeleton->setBonesToSetupPose();
|
||||||
}
|
}
|
||||||
void SkeletonRenderer::setSlotsToSetupPose () {
|
void SkeletonRenderer::setSlotsToSetupPose () {
|
||||||
_skeleton->setSlotsToSetupPose();
|
_skeleton->setSlotsToSetupPose();
|
||||||
}
|
}
|
||||||
|
|
||||||
Bone* SkeletonRenderer::findBone (const std::string& boneName) const {
|
Bone* SkeletonRenderer::findBone (const std::string& boneName) const {
|
||||||
return _skeleton->findBone(boneName.c_str());
|
return _skeleton->findBone(boneName.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
Slot* SkeletonRenderer::findSlot (const std::string& slotName) const {
|
Slot* SkeletonRenderer::findSlot (const std::string& slotName) const {
|
||||||
return _skeleton->findSlot(slotName.c_str());
|
return _skeleton->findSlot(slotName.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setSkin (const std::string& skinName) {
|
void SkeletonRenderer::setSkin (const std::string& skinName) {
|
||||||
_skeleton->setSkin(skinName.empty() ? 0 : skinName.c_str());
|
_skeleton->setSkin(skinName.empty() ? 0 : skinName.c_str());
|
||||||
}
|
}
|
||||||
void SkeletonRenderer::setSkin (const char* skinName) {
|
void SkeletonRenderer::setSkin (const char* skinName) {
|
||||||
_skeleton->setSkin(skinName);
|
_skeleton->setSkin(skinName);
|
||||||
}
|
}
|
||||||
|
|
||||||
Attachment* SkeletonRenderer::getAttachment (const std::string& slotName, const std::string& attachmentName) const {
|
Attachment* SkeletonRenderer::getAttachment (const std::string& slotName, const std::string& attachmentName) const {
|
||||||
return _skeleton->getAttachment(slotName.c_str(), attachmentName.c_str());
|
return _skeleton->getAttachment(slotName.c_str(), attachmentName.c_str());
|
||||||
}
|
}
|
||||||
bool SkeletonRenderer::setAttachment (const std::string& slotName, const std::string& attachmentName) {
|
bool SkeletonRenderer::setAttachment (const std::string& slotName, const std::string& attachmentName) {
|
||||||
return _skeleton->getAttachment(slotName.c_str(), attachmentName.empty() ? 0 : attachmentName.c_str()) ? true : false;
|
return _skeleton->getAttachment(slotName.c_str(), attachmentName.empty() ? 0 : attachmentName.c_str()) ? true : false;
|
||||||
}
|
}
|
||||||
bool SkeletonRenderer::setAttachment (const std::string& slotName, const char* attachmentName) {
|
bool SkeletonRenderer::setAttachment (const std::string& slotName, const char* attachmentName) {
|
||||||
return _skeleton->getAttachment(slotName.c_str(), attachmentName) ? true : false;
|
return _skeleton->getAttachment(slotName.c_str(), attachmentName) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setTwoColorTint(bool enabled) {
|
void SkeletonRenderer::setTwoColorTint(bool enabled) {
|
||||||
setupGLProgramState(enabled);
|
setupGLProgramState(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SkeletonRenderer::isTwoColorTint() {
|
bool SkeletonRenderer::isTwoColorTint() {
|
||||||
return getGLProgramState() == SkeletonTwoColorBatch::getInstance()->getTwoColorTintProgramState();
|
return getGLProgramState() == SkeletonTwoColorBatch::getInstance()->getTwoColorTintProgramState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setVertexEffect(VertexEffect *effect) {
|
void SkeletonRenderer::setVertexEffect(VertexEffect *effect) {
|
||||||
this->_effect = effect;
|
this->_effect = effect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setSlotsRange(int startSlotIndex, int endSlotIndex) {
|
void SkeletonRenderer::setSlotsRange(int startSlotIndex, int endSlotIndex) {
|
||||||
this->_startSlotIndex = startSlotIndex;
|
this->_startSlotIndex = startSlotIndex;
|
||||||
this->_endSlotIndex = endSlotIndex;
|
this->_endSlotIndex = endSlotIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
Skeleton* SkeletonRenderer::getSkeleton () {
|
Skeleton* SkeletonRenderer::getSkeleton () {
|
||||||
return _skeleton;
|
return _skeleton;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setTimeScale (float scale) {
|
void SkeletonRenderer::setTimeScale (float scale) {
|
||||||
_timeScale = scale;
|
_timeScale = scale;
|
||||||
}
|
}
|
||||||
float SkeletonRenderer::getTimeScale () const {
|
float SkeletonRenderer::getTimeScale () const {
|
||||||
return _timeScale;
|
return _timeScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setDebugSlotsEnabled (bool enabled) {
|
void SkeletonRenderer::setDebugSlotsEnabled (bool enabled) {
|
||||||
_debugSlots = enabled;
|
_debugSlots = enabled;
|
||||||
}
|
}
|
||||||
bool SkeletonRenderer::getDebugSlotsEnabled () const {
|
bool SkeletonRenderer::getDebugSlotsEnabled () const {
|
||||||
return _debugSlots;
|
return _debugSlots;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setDebugBonesEnabled (bool enabled) {
|
void SkeletonRenderer::setDebugBonesEnabled (bool enabled) {
|
||||||
_debugBones = enabled;
|
_debugBones = enabled;
|
||||||
}
|
}
|
||||||
bool SkeletonRenderer::getDebugBonesEnabled () const {
|
bool SkeletonRenderer::getDebugBonesEnabled () const {
|
||||||
return _debugBones;
|
return _debugBones;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setDebugMeshesEnabled (bool enabled) {
|
void SkeletonRenderer::setDebugMeshesEnabled (bool enabled) {
|
||||||
_debugMeshes = enabled;
|
_debugMeshes = enabled;
|
||||||
}
|
}
|
||||||
bool SkeletonRenderer::getDebugMeshesEnabled () const {
|
bool SkeletonRenderer::getDebugMeshesEnabled () const {
|
||||||
return _debugMeshes;
|
return _debugMeshes;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::onEnter () {
|
void SkeletonRenderer::onEnter () {
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
if (_scriptType == kScriptTypeJavascript && ScriptEngineManager::sendNodeEventToJSExtended(this, kNodeOnEnter)) return;
|
if (_scriptType == kScriptTypeJavascript && ScriptEngineManager::sendNodeEventToJSExtended(this, kNodeOnEnter)) return;
|
||||||
#endif
|
#endif
|
||||||
Node::onEnter();
|
Node::onEnter();
|
||||||
scheduleUpdate();
|
scheduleUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::onExit () {
|
void SkeletonRenderer::onExit () {
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
if (_scriptType == kScriptTypeJavascript && ScriptEngineManager::sendNodeEventToJSExtended(this, kNodeOnExit)) return;
|
if (_scriptType == kScriptTypeJavascript && ScriptEngineManager::sendNodeEventToJSExtended(this, kNodeOnExit)) return;
|
||||||
#endif
|
#endif
|
||||||
Node::onExit();
|
Node::onExit();
|
||||||
unscheduleUpdate();
|
unscheduleUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- CCBlendProtocol
|
// --- CCBlendProtocol
|
||||||
|
|
||||||
const BlendFunc& SkeletonRenderer::getBlendFunc () const {
|
const BlendFunc& SkeletonRenderer::getBlendFunc () const {
|
||||||
return _blendFunc;
|
return _blendFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setBlendFunc (const BlendFunc &blendFunc) {
|
void SkeletonRenderer::setBlendFunc (const BlendFunc &blendFunc) {
|
||||||
_blendFunc = blendFunc;
|
_blendFunc = blendFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkeletonRenderer::setOpacityModifyRGB (bool value) {
|
void SkeletonRenderer::setOpacityModifyRGB (bool value) {
|
||||||
_premultipliedAlpha = value;
|
_premultipliedAlpha = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SkeletonRenderer::isOpacityModifyRGB () const {
|
bool SkeletonRenderer::isOpacityModifyRGB () const {
|
||||||
return _premultipliedAlpha;
|
return _premultipliedAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user