Merge branch '3.6' into 3.7-beta

This commit is contained in:
badlogic 2017-11-10 11:27:45 +01:00
commit e267ae325f
2 changed files with 30 additions and 15 deletions

View File

@ -12,21 +12,26 @@ LOCAL_MODULE := MyGame_shared
LOCAL_MODULE_FILENAME := libMyGame
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/BatchingExample.cpp \
../../Classes/GoblinsExample.cpp \
../../Classes/RaptorExample.cpp \
../../Classes/SimpleCommand.cpp \
../../Classes/SpineboyExample.cpp \
../../Classes/TankExample.cpp \
../../../src/spine/AttachmentVertices.cpp \
../../../src/spine/Cocos2dAttachmentLoader.cpp \
../../../src/spine/SkeletonAnimation.cpp \
../../../src/spine/SkeletonBatch.cpp \
../../../src/spine/SkeletonTwoColorBatch.cpp \
../../../src/spine/SkeletonRenderer.cpp \
../../../src/spine/spine-cocos2dx.cpp \
../../../../spine-c/spine-c/src/spine/Animation.c \
../../Classes/AppDelegate.cpp \
../../Classes/BatchingExample.cpp \
../../Classes/GoblinsExample.cpp \
../../Classes/RaptorExample.cpp \
../../Classes/SimpleCommand.cpp \
../../Classes/SpineboyExample.cpp \
../../Classes/CoinExample.cpp \
../../Classes/TankExample.cpp \
../../../src/spine/AttachmentVertices.cpp \
../../../src/spine/Cocos2dAttachmentLoader.cpp \
../../../src/spine/SkeletonAnimation.cpp \
../../../src/spine/SkeletonBatch.cpp \
../../../src/spine/SkeletonTwoColorBatch.cpp \
../../../src/spine/SkeletonRenderer.cpp \
../../../src/spine/spine-cocos2dx.cpp \
../../../../spine-c/spine-c/src/spine/Animation.c \
../../../../spine-c/spine-c/src/spine/ClippingAttachment.c \
../../../../spine-c/spine-c/src/spine/SkeletonClipping.c \
../../../../spine-c/spine-c/src/spine/Triangulator.c \
../../../../spine-c/spine-c/src/spine/Array.c \
../../../../spine-c/spine-c/src/spine/AnimationState.c \
../../../../spine-c/spine-c/src/spine/AnimationStateData.c \
../../../../spine-c/spine-c/src/spine/Atlas.c \

View File

@ -150,10 +150,18 @@ float USpineSkeletonAnimationComponent::GetTimeScale() {
return 1;
}
// we need to disable the queue when setting or adding animations, see #1037
extern "C" {
void _spAnimationState_disableQueue(spAnimationState* state);
void _spAnimationState_enableQueue(spAnimationState* state);
}
UTrackEntry* USpineSkeletonAnimationComponent::SetAnimation (int trackIndex, FString animationName, bool loop) {
CheckState();
if (state && spSkeletonData_findAnimation(skeleton->data, TCHAR_TO_UTF8(*animationName))) {
_spAnimationState_disableQueue(state);
spTrackEntry* entry = spAnimationState_setAnimationByName(state, trackIndex, TCHAR_TO_UTF8(*animationName), loop ? 1 : 0);
_spAnimationState_enableQueue(state);
UTrackEntry* uEntry = NewObject<UTrackEntry>();
uEntry->SetTrackEntry(entry);
trackEntries.Add(uEntry);
@ -165,7 +173,9 @@ UTrackEntry* USpineSkeletonAnimationComponent::SetAnimation (int trackIndex, FSt
UTrackEntry* USpineSkeletonAnimationComponent::AddAnimation (int trackIndex, FString animationName, bool loop, float delay) {
CheckState();
if (state && spSkeletonData_findAnimation(skeleton->data, TCHAR_TO_UTF8(*animationName))) {
_spAnimationState_disableQueue(state);
spTrackEntry* entry = spAnimationState_addAnimationByName(state, trackIndex, TCHAR_TO_UTF8(*animationName), loop ? 1 : 0, delay);
_spAnimationState_enableQueue(state);
UTrackEntry* uEntry = NewObject<UTrackEntry>();
uEntry->SetTrackEntry(entry);
trackEntries.Add(uEntry);