Browse Source

Merge pull request #333 from IgorMats/master

Cocos2d-x: changes for JSB support.
Nathan Sweet 10 years ago
parent
commit
ba792fa07d

+ 0 - 1
spine-cocos2dx/3/src/spine/SkeletonAnimation.cpp

@@ -100,7 +100,6 @@ void SkeletonAnimation::initialize () {
 
 SkeletonAnimation::SkeletonAnimation ()
 		: SkeletonRenderer() {
-	initialize();
 }
 
 SkeletonAnimation::SkeletonAnimation (spSkeletonData *skeletonData)

+ 2 - 1
spine-cocos2dx/3/src/spine/SkeletonAnimation.h

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

+ 25 - 13
spine-cocos2dx/3/src/spine/SkeletonRenderer.cpp

@@ -83,18 +83,35 @@ void SkeletonRenderer::setSkeletonData (spSkeletonData *skeletonData, bool ownsS
 }
 
 SkeletonRenderer::SkeletonRenderer () {
-	initialize();
 }
 
 SkeletonRenderer::SkeletonRenderer (spSkeletonData *skeletonData, bool ownsSkeletonData) {
-	initialize();
-
-	setSkeletonData(skeletonData, 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) {
+	setSkeletonData(skeletonData, ownsSkeletonData);
+
 	initialize();
+}
 
+void SkeletonRenderer::initWithFile (const std::string& skeletonDataFile, spAtlas* atlas, float scale) {
 	spSkeletonJson* json = spSkeletonJson_create(atlas);
 	json->scale = scale;
 	spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, skeletonDataFile.c_str());
@@ -102,11 +119,11 @@ SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, spAtlas
 	spSkeletonJson_dispose(json);
 
 	setSkeletonData(skeletonData, true);
-}
 
-SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
 	initialize();
+}
 
+void SkeletonRenderer::initWithFile (const std::string& skeletonDataFile, const std::string& atlasFile, float scale) {
 	_atlas = spAtlas_createFromFile(atlasFile.c_str(), 0);
 	CCASSERT(_atlas, "Error reading atlas file.");
 
@@ -117,16 +134,11 @@ SkeletonRenderer::SkeletonRenderer (const std::string& skeletonDataFile, const s
 	spSkeletonJson_dispose(json);
 
 	setSkeletonData(skeletonData, true);
-}
 
-SkeletonRenderer::~SkeletonRenderer () {
-	if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
-	if (_atlas) spAtlas_dispose(_atlas);
-	spSkeleton_dispose(_skeleton);
-	_batch->release();
-	FREE(_worldVertices);
+	initialize();
 }
 
+
 void SkeletonRenderer::update (float deltaTime) {
 	spSkeleton_update(_skeleton, deltaTime * _timeScale);
 }

+ 8 - 1
spine-cocos2dx/3/src/spine/SkeletonRenderer.h

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