mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
[c] Fixed up c-unittests on GCC/Linux
This commit is contained in:
parent
d85a83d231
commit
f07c2967d5
@ -3,7 +3,7 @@ project(spine_unit_test)
|
|||||||
|
|
||||||
set(CMAKE_INSTALL_PREFIX "./")
|
set(CMAKE_INSTALL_PREFIX "./")
|
||||||
set(CMAKE_VERBOSE_MAKEFILE ON)
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -DKANJI_MEMTRACE -DUSE_CPP11_MUTEX")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -DKANJI_MEMTRACE -DUSE_CPP11_MUTEX -std=c++11")
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# set includes
|
# set includes
|
||||||
@ -55,4 +55,4 @@ add_custom_command(TARGET spine_unit_test PRE_BUILD
|
|||||||
|
|
||||||
add_custom_command(TARGET spine_unit_test PRE_BUILD
|
add_custom_command(TARGET spine_unit_test PRE_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||||
${CMAKE_CURRENT_LIST_DIR}/../../examples/goblins/export $<TARGET_FILE_DIR:spine_unit_test>/testdata/goblins)
|
${CMAKE_CURRENT_LIST_DIR}/../../examples/goblins/export $<TARGET_FILE_DIR:spine_unit_test>/testdata/goblins)
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include "KString.h"
|
#include "KString.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "spine/extension.h"
|
#include "spine/extension.h"
|
||||||
#include "spine/spine.h"
|
#include "spine/spine.h"
|
||||||
@ -63,7 +64,7 @@ int main(int argc, char* argv[])
|
|||||||
extern "C" { // probably unnecessary
|
extern "C" { // probably unnecessary
|
||||||
|
|
||||||
void _spAtlasPage_createTexture(spAtlasPage* self, const char* path) {
|
void _spAtlasPage_createTexture(spAtlasPage* self, const char* path) {
|
||||||
self->rendererObject = nullptr;
|
self->rendererObject = 0;
|
||||||
self->width = 2048;
|
self->width = 2048;
|
||||||
self->height = 2048;
|
self->height = 2048;
|
||||||
}
|
}
|
||||||
@ -74,4 +75,4 @@ extern "C" { // probably unnecessary
|
|||||||
char* _spUtil_readFile(const char* path, int* length) {
|
char* _spUtil_readFile(const char* path, int* length) {
|
||||||
return _readFile(path, length);
|
return _readFile(path, length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,10 +27,10 @@ void C_InterfaceTestFixture::tearDown()
|
|||||||
|
|
||||||
static spSkeletonData* readSkeletonJsonData(const char* filename, spAtlas* atlas) {
|
static spSkeletonData* readSkeletonJsonData(const char* filename, spAtlas* atlas) {
|
||||||
spSkeletonJson* json = spSkeletonJson_create(atlas);
|
spSkeletonJson* json = spSkeletonJson_create(atlas);
|
||||||
ASSERT(json != nullptr);
|
ASSERT(json != 0);
|
||||||
|
|
||||||
spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, filename);
|
spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, filename);
|
||||||
ASSERT(skeletonData != nullptr);
|
ASSERT(skeletonData != 0);
|
||||||
|
|
||||||
spSkeletonJson_dispose(json);
|
spSkeletonJson_dispose(json);
|
||||||
return skeletonData;
|
return skeletonData;
|
||||||
@ -54,22 +54,22 @@ static void testRunner(const char* jsonName, const char* atlasName)
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Global Animation Information
|
// Global Animation Information
|
||||||
spAtlas* atlas = spAtlas_createFromFile(atlasName, 0);
|
spAtlas* atlas = spAtlas_createFromFile(atlasName, 0);
|
||||||
ASSERT(atlas != nullptr);
|
ASSERT(atlas != 0);
|
||||||
|
|
||||||
spSkeletonData* skeletonData = readSkeletonJsonData(jsonName, atlas);
|
spSkeletonData* skeletonData = readSkeletonJsonData(jsonName, atlas);
|
||||||
ASSERT(skeletonData != nullptr);
|
ASSERT(skeletonData != 0);
|
||||||
|
|
||||||
spAnimationStateData* stateData = spAnimationStateData_create(skeletonData);
|
spAnimationStateData* stateData = spAnimationStateData_create(skeletonData);
|
||||||
ASSERT(stateData != nullptr);
|
ASSERT(stateData != 0);
|
||||||
stateData->defaultMix = 0.2f; // force mixing
|
stateData->defaultMix = 0.2f; // force mixing
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Animation Instance
|
// Animation Instance
|
||||||
spSkeleton* skeleton = spSkeleton_create(skeletonData);
|
spSkeleton* skeleton = spSkeleton_create(skeletonData);
|
||||||
ASSERT(skeleton != nullptr);
|
ASSERT(skeleton != 0);
|
||||||
|
|
||||||
spAnimationState* state = spAnimationState_create(stateData);
|
spAnimationState* state = spAnimationState_create(stateData);
|
||||||
ASSERT(state != nullptr);
|
ASSERT(state != 0);
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -40,10 +40,10 @@ void MemoryTestFixture::tearDown()
|
|||||||
// Helper methods
|
// Helper methods
|
||||||
static spSkeletonData* readSkeletonJsonData(const char* filename, spAtlas* atlas) {
|
static spSkeletonData* readSkeletonJsonData(const char* filename, spAtlas* atlas) {
|
||||||
spSkeletonJson* json = spSkeletonJson_create(atlas);
|
spSkeletonJson* json = spSkeletonJson_create(atlas);
|
||||||
ASSERT(json != nullptr);
|
ASSERT(json != 0);
|
||||||
|
|
||||||
spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, filename);
|
spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, filename);
|
||||||
ASSERT(skeletonData != nullptr);
|
ASSERT(skeletonData != 0);
|
||||||
|
|
||||||
spSkeletonJson_dispose(json);
|
spSkeletonJson_dispose(json);
|
||||||
return skeletonData;
|
return skeletonData;
|
||||||
@ -54,22 +54,22 @@ static void LoadSpineboyExample(spAtlas* &atlas, spSkeletonData* &skeletonData,
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Global Animation Information
|
// Global Animation Information
|
||||||
atlas = spAtlas_createFromFile(SPINEBOY_ATLAS, 0);
|
atlas = spAtlas_createFromFile(SPINEBOY_ATLAS, 0);
|
||||||
ASSERT(atlas != nullptr);
|
ASSERT(atlas != 0);
|
||||||
|
|
||||||
skeletonData = readSkeletonJsonData(SPINEBOY_JSON, atlas);
|
skeletonData = readSkeletonJsonData(SPINEBOY_JSON, atlas);
|
||||||
ASSERT(skeletonData != nullptr);
|
ASSERT(skeletonData != 0);
|
||||||
|
|
||||||
stateData = spAnimationStateData_create(skeletonData);
|
stateData = spAnimationStateData_create(skeletonData);
|
||||||
ASSERT(stateData != nullptr);
|
ASSERT(stateData != 0);
|
||||||
stateData->defaultMix = 0.4f; // force mixing
|
stateData->defaultMix = 0.4f; // force mixing
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Animation Instance
|
// Animation Instance
|
||||||
skeleton = spSkeleton_create(skeletonData);
|
skeleton = spSkeleton_create(skeletonData);
|
||||||
ASSERT(skeleton != nullptr);
|
ASSERT(skeleton != 0);
|
||||||
|
|
||||||
state = spAnimationState_create(stateData);
|
state = spAnimationState_create(stateData);
|
||||||
ASSERT(state != nullptr);
|
ASSERT(state != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DisposeAll(spSkeleton* skeleton, spAnimationState* state, spAnimationStateData* stateData, spSkeletonData* skeletonData, spAtlas* atlas)
|
static void DisposeAll(spSkeleton* skeleton, spAnimationState* state, spAnimationStateData* stateData, spSkeletonData* skeletonData, spAtlas* atlas)
|
||||||
@ -92,11 +92,11 @@ static void DisposeAll(spSkeleton* skeleton, spAnimationState* state, spAnimatio
|
|||||||
// https://github.com/EsotericSoftware/spine-runtimes/issues/776
|
// https://github.com/EsotericSoftware/spine-runtimes/issues/776
|
||||||
void MemoryTestFixture::reproduceIssue_776()
|
void MemoryTestFixture::reproduceIssue_776()
|
||||||
{
|
{
|
||||||
spAtlas* atlas = nullptr;
|
spAtlas* atlas = 0;
|
||||||
spSkeletonData* skeletonData = nullptr;
|
spSkeletonData* skeletonData = 0;
|
||||||
spAnimationStateData* stateData = nullptr;
|
spAnimationStateData* stateData = 0;
|
||||||
spSkeleton* skeleton = nullptr;
|
spSkeleton* skeleton = 0;
|
||||||
spAnimationState* state = nullptr;
|
spAnimationState* state = 0;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Initialize Animations
|
// Initialize Animations
|
||||||
@ -134,11 +134,11 @@ void MemoryTestFixture::reproduceIssue_776()
|
|||||||
|
|
||||||
void MemoryTestFixture::reproduceIssue_777()
|
void MemoryTestFixture::reproduceIssue_777()
|
||||||
{
|
{
|
||||||
spAtlas* atlas = nullptr;
|
spAtlas* atlas = 0;
|
||||||
spSkeletonData* skeletonData = nullptr;
|
spSkeletonData* skeletonData = 0;
|
||||||
spAnimationStateData* stateData = nullptr;
|
spAnimationStateData* stateData = 0;
|
||||||
spSkeleton* skeleton = nullptr;
|
spSkeleton* skeleton = 0;
|
||||||
spAnimationState* state = nullptr;
|
spAnimationState* state = 0;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Initialize Animations
|
// Initialize Animations
|
||||||
@ -179,7 +179,7 @@ void MemoryTestFixture::reproduceIssue_777()
|
|||||||
DisposeAll(skeleton, state, stateData, skeletonData, atlas);
|
DisposeAll(skeleton, state, stateData, skeletonData, atlas);
|
||||||
}
|
}
|
||||||
|
|
||||||
spSkeleton* skeleton = nullptr;
|
spSkeleton* skeleton = 0;
|
||||||
static void spineAnimStateHandler(spAnimationState* state, int type, spTrackEntry* entry, spEvent* event)
|
static void spineAnimStateHandler(spAnimationState* state, int type, spTrackEntry* entry, spEvent* event)
|
||||||
{
|
{
|
||||||
if (type == SP_ANIMATION_COMPLETE)
|
if (type == SP_ANIMATION_COMPLETE)
|
||||||
@ -192,10 +192,10 @@ static void spineAnimStateHandler(spAnimationState* state, int type, spTrackEnt
|
|||||||
|
|
||||||
void MemoryTestFixture::reproduceIssue_Loop()
|
void MemoryTestFixture::reproduceIssue_Loop()
|
||||||
{
|
{
|
||||||
spAtlas* atlas = nullptr;
|
spAtlas* atlas = 0;
|
||||||
spSkeletonData* skeletonData = nullptr;
|
spSkeletonData* skeletonData = 0;
|
||||||
spAnimationStateData* stateData = nullptr;
|
spAnimationStateData* stateData = 0;
|
||||||
spAnimationState* state = nullptr;
|
spAnimationState* state = 0;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Initialize Animations
|
// Initialize Animations
|
||||||
|
|||||||
@ -13,7 +13,7 @@ SpineEventMonitor::SpineEventMonitor(spAnimationState* _pAnimationState /*= null
|
|||||||
|
|
||||||
SpineEventMonitor::~SpineEventMonitor()
|
SpineEventMonitor::~SpineEventMonitor()
|
||||||
{
|
{
|
||||||
pAnimState = nullptr;
|
pAnimState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpineEventMonitor::RegisterListener(spAnimationState * _pAnimationState)
|
void SpineEventMonitor::RegisterListener(spAnimationState * _pAnimationState)
|
||||||
@ -28,7 +28,7 @@ void SpineEventMonitor::RegisterListener(spAnimationState * _pAnimationState)
|
|||||||
bool SpineEventMonitor::isAnimationPlaying()
|
bool SpineEventMonitor::isAnimationPlaying()
|
||||||
{
|
{
|
||||||
if (pAnimState)
|
if (pAnimState)
|
||||||
return spAnimationState_getCurrent(pAnimState, 0) != nullptr;
|
return spAnimationState_getCurrent(pAnimState, 0) != 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ void SpineEventMonitor::spineAnimStateHandler(spAnimationState * state, int type
|
|||||||
|
|
||||||
void SpineEventMonitor::OnSpineAnimationStateEvent(spAnimationState * state, int type, spTrackEntry * trackEntry, spEvent * event)
|
void SpineEventMonitor::OnSpineAnimationStateEvent(spAnimationState * state, int type, spTrackEntry * trackEntry, spEvent * event)
|
||||||
{
|
{
|
||||||
const char* eventName = nullptr;
|
const char* eventName = 0;
|
||||||
if (state == pAnimState) { // only monitor ours
|
if (state == pAnimState) { // only monitor ours
|
||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
@ -135,7 +135,7 @@ inline bool InterruptMonitor::InterruptEvent::matches(spAnimationState * state,
|
|||||||
if (mEventType == type) {
|
if (mEventType == type) {
|
||||||
|
|
||||||
// Looking for specific TrackEntry by pointer
|
// Looking for specific TrackEntry by pointer
|
||||||
if (mTrackEntry != nullptr) {
|
if (mTrackEntry != 0) {
|
||||||
return mTrackEntry == trackEntry;
|
return mTrackEntry == trackEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ typedef struct spEvent spEvent;
|
|||||||
class SpineEventMonitor
|
class SpineEventMonitor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SpineEventMonitor(spAnimationState* _pAnimationState = nullptr);
|
SpineEventMonitor(spAnimationState* _pAnimationState = 0);
|
||||||
virtual ~SpineEventMonitor();
|
virtual ~SpineEventMonitor();
|
||||||
|
|
||||||
void RegisterListener(spAnimationState* _pAnimationState);
|
void RegisterListener(spAnimationState* _pAnimationState);
|
||||||
@ -58,7 +58,7 @@ private:
|
|||||||
{
|
{
|
||||||
InterruptEvent() {
|
InterruptEvent() {
|
||||||
mEventType = -1; // invalid
|
mEventType = -1; // invalid
|
||||||
mTrackEntry = nullptr;
|
mTrackEntry = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool matches(spAnimationState* state, int type, spTrackEntry* trackEntry, spEvent* event);
|
bool matches(spAnimationState* state, int type, spTrackEntry* trackEntry, spEvent* event);
|
||||||
@ -72,7 +72,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
InterruptMonitor(spAnimationState* _pAnimationState = nullptr);
|
InterruptMonitor(spAnimationState* _pAnimationState = 0);
|
||||||
~InterruptMonitor() {}
|
~InterruptMonitor() {}
|
||||||
|
|
||||||
virtual bool isAnimationPlaying() override;
|
virtual bool isAnimationPlaying() override;
|
||||||
@ -119,4 +119,4 @@ eventMonitor
|
|||||||
.AddInterruptEvent(SP_ANIMATION_START); // Then, stop on any following START signal
|
.AddInterruptEvent(SP_ANIMATION_START); // Then, stop on any following START signal
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user