ludic/packages/ludic.anim/native.ludic
Orkuncakilkaya 9a56ee9b9d feat(ludic.anim): ozz-animation 0.17.0 underneath - a skin's skeleton and each clip built at load, sampled to 1e-4 of anim_mix (phase 19.1)
No bake and no new file: the skeleton comes from the skin's parents and rest pose (its own joints
and their ancestors - a kit holds several rigs), a clip from anim_read_doc's channels. Built by
native/build.sh from the pinned release; the Windows DLL imports KERNEL32 alone and passes there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:44:49 +03:00

12 lines
1.1 KiB
Text

# native.ludic - the shim's symbols (native/shim/ozz_shim.cpp). A skeleton, a clip and a context are
# handles the package keeps. None of this is exported.
extern function ozz_skel_new(n: int, par: pointer, rest: pointer) -> pointer = "ozz_skel_new"
extern function ozz_skel_free(s: pointer) -> void = "ozz_skel_free"
extern function ozz_skel_joints(s: pointer) -> int = "ozz_skel_joints"
extern function ozz_skel_joint_of(s: pointer, node: int) -> int = "ozz_skel_joint_of"
extern function ozz_clip_new(s: pointer, dur: float, nch: int, cnode: pointer, cpath: pointer, ckeys: pointer, coff: pointer, cvoff: pointer, times: pointer, vals: pointer, positions: int) -> pointer = "ozz_clip_new"
extern function ozz_clip_free(c: pointer) -> void = "ozz_clip_free"
extern function ozz_clip_bytes(c: pointer) -> int = "ozz_clip_bytes"
extern function ozz_ctx_new(s: pointer) -> pointer = "ozz_ctx_new"
extern function ozz_ctx_free(c: pointer) -> void = "ozz_ctx_free"
extern function ozz_sample(ctx: pointer, clip: pointer, t: float, rot: pointer, pos: pointer, n: int) -> int = "ozz_sample"