Cocos2d-x: changes for JSB support.

This commit is contained in:
Igor Mats 2014-11-28 08:43:52 +02:00
parent e38213fb67
commit 22a0eb0c5f
3 changed files with 32 additions and 11 deletions

View File

@ -76,7 +76,7 @@ public:
spAnimationState* getState() const;
protected:
CC_CONSTRUCTOR_ACCESS:
SkeletonAnimation ();
SkeletonAnimation (spSkeletonData* skeletonData);
SkeletonAnimation (const std::string&skeletonDataFile, spAtlas* atlas, float scale = 1);
@ -84,6 +84,7 @@ protected:
virtual ~SkeletonAnimation ();
void initialize ();
protected:
spAnimationState* _state;
bool _ownsAnimationStateData;

View File

@ -87,12 +87,32 @@ SkeletonRenderer::SkeletonRenderer () {
}
SkeletonRenderer::SkeletonRenderer (spSkeletonData *skeletonData, bool ownsSkeletonData) {
initWithData(skeletonData, ownsSkeletonData);
}
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, spAtlas* atlas, float scale) {
initWithFile(skeletonDataFile, atlas, scale);
}
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
initWithFile(skeletonDataFile, atlasFile, scale);
}
SkeletonRenderer::~SkeletonRenderer () {
if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
if (_atlas) spAtlas_dispose(_atlas);
spSkeleton_dispose(_skeleton);
_batch->release();
FREE(_worldVertices);
}
void SkeletonRenderer::initWithData (spSkeletonData* skeletonData, bool ownsSkeletonData = false) {
initialize();
setSkeletonData(skeletonData, ownsSkeletonData);
}
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, spAtlas* atlas, float scale) {
void SkeletonRenderer::initWithFile (const std::string& skeletonDataFile, spAtlas* atlas, float scale = 1) {
initialize();
spSkeletonJson* json = spSkeletonJson_create(atlas);
@ -104,7 +124,7 @@ SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, spAtlas
setSkeletonData(skeletonData, true);
}
SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
void SkeletonRenderer::initWithFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale = 1) {
initialize();
_atlas = spAtlas_createFromFile(atlasFile.c_str(), 0);
@ -119,13 +139,6 @@ SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const s
setSkeletonData(skeletonData, true);
}
SkeletonRenderer::~SkeletonRenderer () {
if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
if (_atlas) spAtlas_dispose(_atlas);
spSkeleton_dispose(_skeleton);
_batch->release();
FREE(_worldVertices);
}
void SkeletonRenderer::update (float deltaTime) {
spSkeleton_update(_skeleton, deltaTime * _timeScale);

View File

@ -91,14 +91,21 @@ public:
virtual void setOpacityModifyRGB (bool value);
virtual bool isOpacityModifyRGB () const;
protected:
CC_CONSTRUCTOR_ACCESS:
SkeletonRenderer ();
SkeletonRenderer (spSkeletonData* skeletonData, bool ownsSkeletonData = false);
SkeletonRenderer (const std::string& skeletonDataFile, spAtlas* atlas, float scale = 1);
SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale = 1);
virtual ~SkeletonRenderer ();
void initWithData (spSkeletonData* skeletonData, bool ownsSkeletonData = false);
void initWithFile (const std::string& skeletonDataFile, spAtlas* atlas, float scale = 1);
void initWithFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale = 1);
void initialize ();
protected:
void setSkeletonData (spSkeletonData* skeletonData, bool ownsSkeletonData);
virtual cocos2d::Texture2D* getTexture (spRegionAttachment* attachment) const;
virtual cocos2d::Texture2D* getTexture (spMeshAttachment* attachment) const;