[c] spine_animation_state_events_* extension functions.

This commit is contained in:
Mario Zechner 2025-07-29 22:51:34 +02:00
parent 001f4d384f
commit 71eb86c15e
2 changed files with 41 additions and 0 deletions

View File

@ -381,6 +381,40 @@ spine_animation_state_events spine_skeleton_drawable_get_animation_state_events(
}
// Animation state events functions
int32_t spine_animation_state_events_get_num_events(spine_animation_state_events events) {
if (!events) return 0;
EventListener *listener = (EventListener *) events;
return listener->events.size();
}
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;
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;
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;
return (spine_event) listener->events[index].event;
}
void spine_animation_state_events_reset(spine_animation_state_events events) {
if (!events) return;
EventListener *listener = (EventListener *) events;
listener->events.clear();
}
// Skin entries functions
void spine_skin_entries_dispose(spine_skin_entries entries) {

View File

@ -86,6 +86,13 @@ SPINE_C_API spine_animation_state spine_skeleton_drawable_get_animation_state(sp
SPINE_C_API spine_animation_state_data spine_skeleton_drawable_get_animation_state_data(spine_skeleton_drawable drawable);
SPINE_C_API spine_animation_state_events spine_skeleton_drawable_get_animation_state_events(spine_skeleton_drawable drawable);
// Animation state events functions
SPINE_C_API int32_t spine_animation_state_events_get_num_events(spine_animation_state_events events);
SPINE_C_API int32_t spine_animation_state_events_get_event_type(spine_animation_state_events events, int32_t index);
SPINE_C_API spine_track_entry spine_animation_state_events_get_track_entry(spine_animation_state_events events, int32_t index);
SPINE_C_API spine_event spine_animation_state_events_get_event(spine_animation_state_events events, int32_t index);
SPINE_C_API void spine_animation_state_events_reset(spine_animation_state_events events);
// Skin functions
SPINE_C_API spine_skin_entries spine_skin_get_entries(spine_skin skin);