[c] Expose TrackEntry::getAnimationState in C bindings.

This commit is contained in:
Mario Zechner 2025-07-29 23:16:17 +02:00
parent fe5e25c3a0
commit 31652b4022
3 changed files with 15 additions and 3 deletions

View File

@ -391,21 +391,21 @@ int32_t spine_animation_state_events_get_num_events(spine_animation_state_events
int32_t spine_animation_state_events_get_event_type(spine_animation_state_events events, int32_t index) {
if (!events) return 0;
EventListener *listener = (EventListener *) events;
if (index < 0 || index >= (int32_t)listener->events.size()) return 0;
if (index < 0 || index >= (int32_t) listener->events.size()) return 0;
return (int32_t) listener->events[index].type;
}
spine_track_entry spine_animation_state_events_get_track_entry(spine_animation_state_events events, int32_t index) {
if (!events) return nullptr;
EventListener *listener = (EventListener *) events;
if (index < 0 || index >= (int32_t)listener->events.size()) return nullptr;
if (index < 0 || index >= (int32_t) listener->events.size()) return nullptr;
return (spine_track_entry) listener->events[index].entry;
}
spine_event spine_animation_state_events_get_event(spine_animation_state_events events, int32_t index) {
if (!events) return nullptr;
EventListener *listener = (EventListener *) events;
if (index < 0 || index >= (int32_t)listener->events.size()) return nullptr;
if (index < 0 || index >= (int32_t) listener->events.size()) return nullptr;
return (spine_event) listener->events[index].event;
}

View File

@ -276,6 +276,16 @@ bool spine_track_entry_is_next_ready(spine_track_entry self) {
return _self->isNextReady();
}
/*@null*/ spine_animation_state spine_track_entry_get_animation_state(spine_track_entry self) {
TrackEntry *_self = (TrackEntry *) self;
return (spine_animation_state) _self->getAnimationState();
}
void spine_track_entry_set_animation_state(spine_track_entry self, /*@null*/ spine_animation_state state) {
TrackEntry *_self = (TrackEntry *) self;
_self->setAnimationState((AnimationState *) state);
}
/*@null*/ void *spine_track_entry_get_renderer_object(spine_track_entry self) {
HasRendererObject *_self = (HasRendererObject *) (TrackEntry *) self;
return _self->getRendererObject();

View File

@ -66,6 +66,8 @@ SPINE_C_API float spine_track_entry_get_track_complete(spine_track_entry self);
SPINE_C_API bool spine_track_entry_is_empty_animation(spine_track_entry self);
SPINE_C_API bool spine_track_entry_was_applied(spine_track_entry self);
SPINE_C_API bool spine_track_entry_is_next_ready(spine_track_entry self);
SPINE_C_API /*@null*/ spine_animation_state spine_track_entry_get_animation_state(spine_track_entry self);
SPINE_C_API void spine_track_entry_set_animation_state(spine_track_entry self, /*@null*/ spine_animation_state state);
SPINE_C_API /*@null*/ void *spine_track_entry_get_renderer_object(spine_track_entry self);
#ifdef __cplusplus