mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[cpp] Fixing up SkeletonBinary.
This commit is contained in:
parent
11d0a47360
commit
4a9446ed83
@ -33,17 +33,41 @@
|
|||||||
|
|
||||||
#include "TestHarness.h"
|
#include "TestHarness.h"
|
||||||
|
|
||||||
#define SPINEBOY_JSON "testdata/raptor/raptor-pro.json"
|
|
||||||
#define SPINEBOY_ATLAS "testdata/raptor/raptor.atlas"
|
#define R_JSON "testdata/raptor/raptor-pro.json"
|
||||||
|
#define R_BINARY "testdata/raptor/raptor-pro.skel"
|
||||||
|
#define R_ATLAS "testdata/raptor/raptor.atlas"
|
||||||
|
|
||||||
|
#define SPINEBOY_JSON "testdata/spineboy/spineboy-pro.json"
|
||||||
|
#define SPINEBOY_BINARY "testdata/spineboy/spineboy-pro.skel"
|
||||||
|
#define SPINEBOY_ATLAS "testdata/spineboy/spineboy.atlas"
|
||||||
|
|
||||||
using namespace Spine;
|
using namespace Spine;
|
||||||
|
|
||||||
void loadSpineboy(Atlas* &atlas, SkeletonData* &skeletonData, AnimationStateData* &stateData, Skeleton* &skeleton, AnimationState* &state) {
|
void loadBinary(const char* binaryFile, const char* atlasFile, Atlas* &atlas, SkeletonData* &skeletonData, AnimationStateData* &stateData, Skeleton* &skeleton, AnimationState* &state) {
|
||||||
atlas = new (__FILE__, __LINE__) Atlas(SPINEBOY_ATLAS, 0);
|
atlas = new (__FILE__, __LINE__) Atlas(atlasFile, 0);
|
||||||
|
assert(atlas != 0);
|
||||||
|
|
||||||
|
SkeletonBinary binary(atlas);
|
||||||
|
skeletonData = binary.readSkeletonDataFile(binaryFile);
|
||||||
|
assert(skeletonData);
|
||||||
|
|
||||||
|
skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
||||||
|
assert(skeleton != 0);
|
||||||
|
|
||||||
|
stateData = new (__FILE__, __LINE__) AnimationStateData(skeletonData);
|
||||||
|
assert(stateData != 0);
|
||||||
|
stateData->setDefaultMix(0.4f);
|
||||||
|
|
||||||
|
state = new (__FILE__, __LINE__) AnimationState(stateData);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loadJson(const char* jsonFile, const char* atlasFile, Atlas* &atlas, SkeletonData* &skeletonData, AnimationStateData* &stateData, Skeleton* &skeleton, AnimationState* &state) {
|
||||||
|
atlas = new (__FILE__, __LINE__) Atlas(atlasFile, 0);
|
||||||
assert(atlas != 0);
|
assert(atlas != 0);
|
||||||
|
|
||||||
SkeletonJson json(atlas);
|
SkeletonJson json(atlas);
|
||||||
skeletonData = json.readSkeletonDataFile(SPINEBOY_JSON);
|
skeletonData = json.readSkeletonDataFile(jsonFile);
|
||||||
assert(skeletonData);
|
assert(skeletonData);
|
||||||
|
|
||||||
skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
||||||
@ -71,7 +95,10 @@ void reproduceIssue_776() {
|
|||||||
Skeleton* skeleton = 0;
|
Skeleton* skeleton = 0;
|
||||||
AnimationState* state = 0;
|
AnimationState* state = 0;
|
||||||
|
|
||||||
loadSpineboy(atlas, skeletonData, stateData, skeleton, state);
|
loadJson(R_JSON, R_ATLAS, atlas, skeletonData, stateData, skeleton, state);
|
||||||
|
dispose(atlas, skeletonData, stateData, skeleton, state);
|
||||||
|
|
||||||
|
loadBinary(R_BINARY, R_ATLAS, atlas, skeletonData, stateData, skeleton, state);
|
||||||
dispose(atlas, skeletonData, stateData, skeleton, state);
|
dispose(atlas, skeletonData, stateData, skeleton, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -79,7 +79,7 @@ namespace Spine {
|
|||||||
_head(NULL),
|
_head(NULL),
|
||||||
_hashFunction(),
|
_hashFunction(),
|
||||||
_size(0) {
|
_size(0) {
|
||||||
|
// Empty
|
||||||
}
|
}
|
||||||
|
|
||||||
~HashMap() {
|
~HashMap() {
|
||||||
|
|||||||
@ -148,9 +148,10 @@ namespace Spine {
|
|||||||
nonessential = readBoolean(input);
|
nonessential = readBoolean(input);
|
||||||
|
|
||||||
if (nonessential) {
|
if (nonessential) {
|
||||||
/* Skip images path & fps */
|
/* Skip images path, audio path & fps */
|
||||||
readFloat(input);
|
readFloat(input);
|
||||||
SpineExtension::free(readString(input), __FILE__, __LINE__);
|
SpineExtension::free(readString(input), __FILE__, __LINE__);
|
||||||
|
SpineExtension::free(readString(input), __FILE__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bones. */
|
/* Bones. */
|
||||||
@ -387,6 +388,7 @@ namespace Spine {
|
|||||||
const char* eventData_stringValue = readString(input);
|
const char* eventData_stringValue = readString(input);
|
||||||
eventData->_stringValue = std::string(eventData_stringValue);
|
eventData->_stringValue = std::string(eventData_stringValue);
|
||||||
SpineExtension::free(eventData_stringValue, __FILE__, __LINE__);
|
SpineExtension::free(eventData_stringValue, __FILE__, __LINE__);
|
||||||
|
SpineExtension::free(readString(input), __FILE__, __LINE__); // skip audio path
|
||||||
skeletonData->_events[i] = eventData;
|
skeletonData->_events[i] = eventData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user