mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 01:06:00 +08:00
[c][cpp] Port: Added TrackEntry#isNextReady() #2547
This commit is contained in:
parent
c0efb545bd
commit
f2d1a2104d
@ -150,6 +150,8 @@ SP_API void spTrackEntry_setMixDuration(spTrackEntry *entry, float mixDuration,
|
||||
|
||||
SP_API int/*bool*/ spTrackEntry_wasApplied(spTrackEntry *entry);
|
||||
|
||||
SP_API int/*bool*/ spTrackEntry_isNextReady(spTrackEntry *entry);
|
||||
|
||||
SP_API void spAnimationState_clearNext(spAnimationState *self, spTrackEntry *entry);
|
||||
|
||||
/** Use this to dispose static memory before your app exits to appease your memory leak detector*/
|
||||
|
||||
@ -1069,6 +1069,10 @@ int spTrackEntry_wasApplied(spTrackEntry *entry) {
|
||||
return entry->nextTrackLast != -1;
|
||||
}
|
||||
|
||||
int spTrackEntry_isNextReady(spTrackEntry *entry) {
|
||||
return entry->next != NULL && entry->nextTrackLast - entry->next->delay >= 0;
|
||||
}
|
||||
|
||||
void _spTrackEntry_computeHold(spTrackEntry *entry, spAnimationState *state) {
|
||||
spTrackEntry *to;
|
||||
spTimeline **timelines;
|
||||
|
||||
@ -1412,6 +1412,18 @@ float spine_track_entry_get_track_complete(spine_track_entry entry) {
|
||||
return _entry->getTrackComplete();
|
||||
}
|
||||
|
||||
spine_bool spine_track_entry_was_applied(spine_track_entry entry) {
|
||||
if (entry == nullptr) return false;
|
||||
TrackEntry *_entry = (TrackEntry *) entry;
|
||||
return _entry->wasApplied();
|
||||
}
|
||||
|
||||
spine_bool spine_track_entry_is_next_ready(spine_track_entry entry) {
|
||||
if (entry == nullptr) return false;
|
||||
TrackEntry *_entry = (TrackEntry *) entry;
|
||||
return _entry->isNextReady();
|
||||
}
|
||||
|
||||
// Skeleton
|
||||
|
||||
void spine_skeleton_update_cache(spine_skeleton skeleton) {
|
||||
|
||||
@ -371,6 +371,8 @@ SPINE_CPP_LITE_EXPORT spine_track_entry spine_track_entry_get_mixing_from(spine_
|
||||
SPINE_CPP_LITE_EXPORT spine_track_entry spine_track_entry_get_mixing_to(spine_track_entry entry);
|
||||
SPINE_CPP_LITE_EXPORT void spine_track_entry_reset_rotation_directions(spine_track_entry entry);
|
||||
SPINE_CPP_LITE_EXPORT float spine_track_entry_get_track_complete(spine_track_entry entry);
|
||||
SPINE_CPP_LITE_EXPORT float spine_track_entry_was_applied(spine_track_entry entry);
|
||||
SPINE_CPP_LITE_EXPORT float spine_track_entry_is_next_ready(spine_track_entry entry);
|
||||
// OMITTED setListener()
|
||||
// OMITTED setListener()
|
||||
|
||||
|
||||
@ -284,6 +284,12 @@ namespace spine {
|
||||
/// See AnimationState::apply(Skeleton).
|
||||
bool wasApplied();
|
||||
|
||||
/// Returns true if there is a getNext() track entry that is ready to become the current track entry during the
|
||||
/// next AnimationState::update(float)}
|
||||
bool isNextReady () {
|
||||
return _next != NULL && _nextTrackLast - _next->_delay >= 0;
|
||||
}
|
||||
|
||||
private:
|
||||
Animation *_animation;
|
||||
TrackEntry *_previous;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user