Reference scope
This page contains every public function declared in core/native3d/include/native_3d_animation_api_v1.h in dev-40. Signatures are reproduced from the header; nearby header comments are shown when present. Use the conceptual guide pages for behavior that is shared across a family.
Animation timeline and layers 36 functions
gx3de_animation_create
GX3DE_API gx3de_result gx3de_animation_create(gx3de_scene *scene,const char *time_unit_utf8,gx3de_animation **out);Timeline lifetime is nested in scene lifetime. Referenced external objects
must outlive timeline. Destroy timeline before scene. Unit is UTF-8 text.
No wall-clock or event loop is required; advance() takes caller elapsed time.
Source:
core/native3d/include/native_3d_animation_api_v1.h:48gx3de_animation_destroy
GX3DE_API gx3de_result gx3de_animation_destroy(gx3de_animation *timeline);Source:
core/native3d/include/native_3d_animation_api_v1.h:49gx3de_animation_frame_add
GX3DE_API gx3de_result gx3de_animation_frame_add(gx3de_animation *timeline,double time_value, gx3de_object *source_object,gx3de_animation_frame_loader loader,void *loader_user,uint64_t *frame_index);Times must be strictly increasing; source object is borrowed. A NULL source
requires a loader. Lazy loaded objects are timeline-owned and LRU-evicted.
Source:
core/native3d/include/native_3d_animation_api_v1.h:52gx3de_animation_time_add
GX3DE_API gx3de_result gx3de_animation_time_add(gx3de_animation *timeline,double time_value,uint64_t *frame_index);A time-only frame supports timelines whose content lives in named layers.
Source:
core/native3d/include/native_3d_animation_api_v1.h:55gx3de_animation_layer_create
GX3DE_API gx3de_result gx3de_animation_layer_create(gx3de_animation *timeline,const char *id_utf8,gx3de_animation_layer **out);UTF-8 layer IDs are stable logical identities. Sources can be supplied or
loaded lazily; borrowed sources must outlive the timeline. Frame slots can
be sparse. All sources remain immutable.
Source:
core/native3d/include/native_3d_animation_api_v1.h:59gx3de_animation_layer_id
GX3DE_API gx3de_result gx3de_animation_layer_id(gx3de_animation_layer *layer,char *buffer,uint64_t capacity,uint64_t *required_bytes);Source:
core/native3d/include/native_3d_animation_api_v1.h:60gx3de_animation_layer_frame_set
GX3DE_API gx3de_result gx3de_animation_layer_frame_set(gx3de_animation_layer *layer,uint64_t frame_index, gx3de_object *source_object,gx3de_animation_frame_loader loader,void *loader_user);Source:
core/native3d/include/native_3d_animation_api_v1.h:61gx3de_animation_layer_active_object_get
GX3DE_API gx3de_result gx3de_animation_layer_active_object_get(gx3de_animation_layer *layer,gx3de_object **out);Source:
core/native3d/include/native_3d_animation_api_v1.h:63gx3de_animation_layer_bind_lines
GX3DE_API gx3de_result gx3de_animation_layer_bind_lines(gx3de_animation_layer *layer, gx3de_animation_layer *source,const gx3de_field_line_spec *spec);Native derived layers rebuild on active frame changes. Their source layer
must precede them; seed arrays are copied when the binding is set.
Source:
core/native3d/include/native_3d_animation_api_v1.h:66gx3de_animation_layer_bind_slice
GX3DE_API gx3de_result gx3de_animation_layer_bind_slice(gx3de_animation_layer *layer, gx3de_animation_layer *source,const gx3de_field_slice_spec *spec);Source:
core/native3d/include/native_3d_animation_api_v1.h:68gx3de_animation_layer_bind_isosurface
GX3DE_API gx3de_result gx3de_animation_layer_bind_isosurface(gx3de_animation_layer *layer, gx3de_animation_layer *source,const char *scalar_name_utf8,double value);Source:
core/native3d/include/native_3d_animation_api_v1.h:70gx3de_animation_layer_bind_pathlines
GX3DE_API gx3de_result gx3de_animation_layer_bind_pathlines(gx3de_animation_layer *layer, gx3de_animation_layer *source,const gx3de_field_pathline_spec *spec);Bind pathlines to successive source-track frames. At active frame i the
derived object contains the trajectory through samples [0,i]; frame zero
intentionally has no line. The source track must provide every frame.
The binding copies seeds and integration settings; times and source frames
come from the parent timeline. Derived objects participate in normal LRU,
resident-frame and estimated-memory limits.
Source:
core/native3d/include/native_3d_animation_api_v1.h:78gx3de_animation_set_resident_limit
GX3DE_API gx3de_result gx3de_animation_set_resident_limit(gx3de_animation *timeline,uint64_t max_frames);Source:
core/native3d/include/native_3d_animation_api_v1.h:80gx3de_animation_set_memory_limit
GX3DE_API gx3de_result gx3de_animation_set_memory_limit(gx3de_animation *timeline,uint64_t max_bytes);Source:
core/native3d/include/native_3d_animation_api_v1.h:81gx3de_animation_mode_set
GX3DE_API gx3de_result gx3de_animation_mode_set(gx3de_animation *timeline,uint32_t interpolation,uint32_t loop_mode,double playback_rate);Source:
core/native3d/include/native_3d_animation_api_v1.h:82gx3de_animation_playback_range_set
GX3DE_API gx3de_result gx3de_animation_playback_range_set(gx3de_animation *timeline,uint64_t first_frame,uint64_t last_frame);Inclusive playback frame range. Explicit seek/render may still address all
frames; play, stop, step and advance use this sub-range.
Source:
core/native3d/include/native_3d_animation_api_v1.h:85gx3de_animation_playback_range_get
GX3DE_API gx3de_result gx3de_animation_playback_range_get(gx3de_animation *timeline,uint64_t *first_frame,uint64_t *last_frame);Source:
core/native3d/include/native_3d_animation_api_v1.h:86gx3de_animation_info_get
GX3DE_API gx3de_result gx3de_animation_info_get(gx3de_animation *timeline,gx3de_animation_info *out);Source:
core/native3d/include/native_3d_animation_api_v1.h:87gx3de_animation_time_unit
GX3DE_API gx3de_result gx3de_animation_time_unit(gx3de_animation *timeline,char *buffer,uint64_t capacity,uint64_t *required_bytes);Source:
core/native3d/include/native_3d_animation_api_v1.h:88gx3de_animation_frame_time
GX3DE_API gx3de_result gx3de_animation_frame_time(gx3de_animation *timeline,uint64_t index,double *time_value);Source:
core/native3d/include/native_3d_animation_api_v1.h:89gx3de_animation_active_object_get
GX3DE_API gx3de_result gx3de_animation_active_object_get(gx3de_animation *timeline,gx3de_object **out);Borrowed current source for inspection/provenance; may change on seek and
must never be retained across a seek or timeline destruction.
Source:
core/native3d/include/native_3d_animation_api_v1.h:92gx3de_animation_object_key_set
GX3DE_API gx3de_result gx3de_animation_object_key_set(gx3de_animation *timeline,uint64_t frame_index, gx3de_object *object,const gx3de_mat4 *local_pose,uint32_t visible,double opacity);A keyed object track controls local pose, visibility and opacity. Each key
belongs to one frame; linear policy interpolates opacity/translation only
when adjacent rotation/scale matrices match. Visibility remains discrete.
Source:
core/native3d/include/native_3d_animation_api_v1.h:96gx3de_animation_camera_key_set
GX3DE_API gx3de_result gx3de_animation_camera_key_set(gx3de_animation *timeline,uint64_t frame_index, gx3de_view *view,const gx3de_camera *camera);Source:
core/native3d/include/native_3d_animation_api_v1.h:98gx3de_animation_seek_frame
GX3DE_API gx3de_result gx3de_animation_seek_frame(gx3de_animation *timeline,uint64_t index);Source:
core/native3d/include/native_3d_animation_api_v1.h:100gx3de_animation_seek_time
GX3DE_API gx3de_result gx3de_animation_seek_time(gx3de_animation *timeline,double time_value);Source:
core/native3d/include/native_3d_animation_api_v1.h:101gx3de_animation_play
GX3DE_API gx3de_result gx3de_animation_play(gx3de_animation *timeline);Source:
core/native3d/include/native_3d_animation_api_v1.h:102gx3de_animation_pause
GX3DE_API gx3de_result gx3de_animation_pause(gx3de_animation *timeline);Source:
core/native3d/include/native_3d_animation_api_v1.h:103gx3de_animation_stop
GX3DE_API gx3de_result gx3de_animation_stop(gx3de_animation *timeline);Source:
core/native3d/include/native_3d_animation_api_v1.h:104gx3de_animation_step
GX3DE_API gx3de_result gx3de_animation_step(gx3de_animation *timeline,int32_t direction);Source:
core/native3d/include/native_3d_animation_api_v1.h:105gx3de_animation_advance
GX3DE_API gx3de_result gx3de_animation_advance(gx3de_animation *timeline,double elapsed_seconds);Source:
core/native3d/include/native_3d_animation_api_v1.h:106gx3de_animation_cancel
GX3DE_API gx3de_result gx3de_animation_cancel(gx3de_animation *timeline);Sets a cancellation flag checked before/after a lazy loader and between
sequence frames. A blocking loader must implement its own finer cancellation.
Source:
core/native3d/include/native_3d_animation_api_v1.h:109gx3de_animation_reset_cancel
GX3DE_API gx3de_result gx3de_animation_reset_cancel(gx3de_animation *timeline);Source:
core/native3d/include/native_3d_animation_api_v1.h:110gx3de_animation_cancel_requested
GX3DE_API gx3de_result gx3de_animation_cancel_requested(gx3de_animation *timeline,uint32_t *requested);Safe to call from a synchronous frame loader to cooperate with cancellation.
Source:
core/native3d/include/native_3d_animation_api_v1.h:112gx3de_animation_render_frame_rgba
GX3DE_API gx3de_result gx3de_animation_render_frame_rgba(gx3de_animation *timeline,gx3de_view *view, uint64_t frame_index,uint32_t width,uint32_t height,uint8_t *pixels,uint64_t capacity,uint64_t *required_bytes);Seeks exactly before ordinary explicit-resolution rendering. PNG sequence
names are prefix + zero-padded 6-digit frame index + ".png". Caller owns
target directory. On failure, subsequent frames are not attempted.
Source:
core/native3d/include/native_3d_animation_api_v1.h:116gx3de_animation_render_frame_png
GX3DE_API gx3de_result gx3de_animation_render_frame_png(gx3de_animation *timeline,gx3de_view *view, uint64_t frame_index,uint32_t width,uint32_t height,const char *path_utf8);Source:
core/native3d/include/native_3d_animation_api_v1.h:118gx3de_animation_write_png_sequence
GX3DE_API gx3de_result gx3de_animation_write_png_sequence(gx3de_animation *timeline,gx3de_view *view, uint64_t first_frame,uint64_t frame_count,uint32_t width,uint32_t height,const char *prefix_utf8);Source:
core/native3d/include/native_3d_animation_api_v1.h:120