mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
Merge branch 'EsotericSoftware/3.6' into 3.6
This commit is contained in:
commit
a48f650f03
@ -12,21 +12,26 @@ LOCAL_MODULE := MyGame_shared
|
|||||||
LOCAL_MODULE_FILENAME := libMyGame
|
LOCAL_MODULE_FILENAME := libMyGame
|
||||||
|
|
||||||
LOCAL_SRC_FILES := hellocpp/main.cpp \
|
LOCAL_SRC_FILES := hellocpp/main.cpp \
|
||||||
../../Classes/AppDelegate.cpp \
|
../../Classes/AppDelegate.cpp \
|
||||||
../../Classes/BatchingExample.cpp \
|
../../Classes/BatchingExample.cpp \
|
||||||
../../Classes/GoblinsExample.cpp \
|
../../Classes/GoblinsExample.cpp \
|
||||||
../../Classes/RaptorExample.cpp \
|
../../Classes/RaptorExample.cpp \
|
||||||
../../Classes/SimpleCommand.cpp \
|
../../Classes/SimpleCommand.cpp \
|
||||||
../../Classes/SpineboyExample.cpp \
|
../../Classes/SpineboyExample.cpp \
|
||||||
../../Classes/TankExample.cpp \
|
../../Classes/CoinExample.cpp \
|
||||||
../../../src/spine/AttachmentVertices.cpp \
|
../../Classes/TankExample.cpp \
|
||||||
../../../src/spine/Cocos2dAttachmentLoader.cpp \
|
../../../src/spine/AttachmentVertices.cpp \
|
||||||
../../../src/spine/SkeletonAnimation.cpp \
|
../../../src/spine/Cocos2dAttachmentLoader.cpp \
|
||||||
../../../src/spine/SkeletonBatch.cpp \
|
../../../src/spine/SkeletonAnimation.cpp \
|
||||||
../../../src/spine/SkeletonTwoColorBatch.cpp \
|
../../../src/spine/SkeletonBatch.cpp \
|
||||||
../../../src/spine/SkeletonRenderer.cpp \
|
../../../src/spine/SkeletonTwoColorBatch.cpp \
|
||||||
../../../src/spine/spine-cocos2dx.cpp \
|
../../../src/spine/SkeletonRenderer.cpp \
|
||||||
../../../../spine-c/spine-c/src/spine/Animation.c \
|
../../../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/AnimationState.c \
|
||||||
../../../../spine-c/spine-c/src/spine/AnimationStateData.c \
|
../../../../spine-c/spine-c/src/spine/AnimationStateData.c \
|
||||||
../../../../spine-c/spine-c/src/spine/Atlas.c \
|
../../../../spine-c/spine-c/src/spine/Atlas.c \
|
||||||
|
|||||||
@ -150,10 +150,18 @@ float USpineSkeletonAnimationComponent::GetTimeScale() {
|
|||||||
return 1;
|
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) {
|
UTrackEntry* USpineSkeletonAnimationComponent::SetAnimation (int trackIndex, FString animationName, bool loop) {
|
||||||
CheckState();
|
CheckState();
|
||||||
if (state && spSkeletonData_findAnimation(skeleton->data, TCHAR_TO_UTF8(*animationName))) {
|
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);
|
spTrackEntry* entry = spAnimationState_setAnimationByName(state, trackIndex, TCHAR_TO_UTF8(*animationName), loop ? 1 : 0);
|
||||||
|
_spAnimationState_enableQueue(state);
|
||||||
UTrackEntry* uEntry = NewObject<UTrackEntry>();
|
UTrackEntry* uEntry = NewObject<UTrackEntry>();
|
||||||
uEntry->SetTrackEntry(entry);
|
uEntry->SetTrackEntry(entry);
|
||||||
trackEntries.Add(uEntry);
|
trackEntries.Add(uEntry);
|
||||||
@ -165,7 +173,9 @@ UTrackEntry* USpineSkeletonAnimationComponent::SetAnimation (int trackIndex, FSt
|
|||||||
UTrackEntry* USpineSkeletonAnimationComponent::AddAnimation (int trackIndex, FString animationName, bool loop, float delay) {
|
UTrackEntry* USpineSkeletonAnimationComponent::AddAnimation (int trackIndex, FString animationName, bool loop, float delay) {
|
||||||
CheckState();
|
CheckState();
|
||||||
if (state && spSkeletonData_findAnimation(skeleton->data, TCHAR_TO_UTF8(*animationName))) {
|
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);
|
spTrackEntry* entry = spAnimationState_addAnimationByName(state, trackIndex, TCHAR_TO_UTF8(*animationName), loop ? 1 : 0, delay);
|
||||||
|
_spAnimationState_enableQueue(state);
|
||||||
UTrackEntry* uEntry = NewObject<UTrackEntry>();
|
UTrackEntry* uEntry = NewObject<UTrackEntry>();
|
||||||
uEntry->SetTrackEntry(entry);
|
uEntry->SetTrackEntry(entry);
|
||||||
trackEntries.Add(uEntry);
|
trackEntries.Add(uEntry);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user