- Upgrade runtime to Spine 4.2
- Fix
memcpy
crash in Rust 1.78 (when not usinglibc
feature) - Consistently use "translation" instead of "position" verbiage.
- Functions with
position
in their name renamed to usetranslation
(except those referring to other types of positions).
- Functions with
- Add
Physics
enum- Add
physics
parameter toSkeleton::update_world_transform
andSkeleton::update_world_transform_with
- Add
physics
parameter toController::update
- Add
- Add constraint types:
IkConstraint
IkConstraintData
PathConstraint
PathConstraintData
PhysicsConstraint
PhysicsConstraintData
TransformConstraint
TransformConstraintData
- Add IK constraint methods:
Skeleton::ik_constraints
Skeleton::ik_constraints_mut
Skeleton::ik_constraint_at_index
Skeleton::ik_constraint_at_index_mut
Skeleton::find_ik_constraint
Skeleton::find_ik_constraint_mut
SkeletonData::ik_constraints
SkeletonData::ik_constraint_at_index
SkeletonData::find_ik_constraint
- Add path constraint methods:
Skeleton::path_constraints
Skeleton::path_constraints_mut
Skeleton::path_constraint_at_index
Skeleton::path_constraint_at_index_mut
Skeleton::find_path_constraint
Skeleton::find_path_constraint_mut
SkeletonData::path_constraints
SkeletonData::path_constraint_at_index
SkeletonData::find_path_constraint
- Add physics constraint methods:
Skeleton::physics_constraints
Skeleton::physics_constraints_mut
Skeleton::physics_constraint_at_index
Skeleton::physics_constraint_at_index_mut
Skeleton::find_physics_constraint
Skeleton::find_physics_constraint_mut
Skeleton::physics_constraint_count
SkeletonData::physics_constraints
SkeletonData::physics_constraint_at_index
SkeletonData::physics_constraint_count
SkeletonData::find_physics_constraint
- Add transform constraint methods:
Skeleton::transform_constraints
Skeleton::transform_constraints_mut
Skeleton::transform_constraint_at_index
Skeleton::transform_constraint_at_index_mut
Skeleton::find_transform_constraint
Skeleton::find_transform_constraint_mut
SkeletonData::transform_constraints
SkeletonData::transform_constraint_at_index
SkeletonData::find_transform_constraint
- Add new enum types:
PositionMode
SpacingMode
RotateMode
- Add missing mutator:
TrackEntry::set_track_time
- Add Spine 4.2 methods:
TrackEntry::mix_attachment_threshold
TrackEntry::set_mix_attachment_threshold
TrackEntry::mix_draw_order_threshold
TrackEntry::set_mix_draw_order_threshold
- Remove Spine 4.1 methods:
TrackEntry::attachment_threshold
TrackEntry::set_attachment_threshold
TrackEntry::draw_order_threshold
TrackEntry::set_draw_order_threshold
- Fix dark color applying incorrectly with premultiplied alpha (using draw functions)
- Add
AttachmentLoader
for creating region attachments - Upstream fixes
- Reduce allocations (EsotericSoftware/spine-runtimes#2325)
- Fix double free of sequences in mesh attachments (EsotericSoftware/spine-runtimes#2394)
- Fix buffer overflow when loading sequences with less than 10 frames (EsotericSoftware/spine-runtimes#2397)
- Fix incorrect allocation of TransformTimeline (EsotericSoftware/spine-runtimes#2401)
- Remove unnecessary feature
use_libc
, uselibc
instead - More clippy fixes
- Fixes for pointer, abi, and memory undefined behavior
- Lots of docs
- Return values now optional:
SkeletonData::audio_path
SkeletonData::images_path
SkeletonData::version
SlotData::attachment_name
SlotData::blend_mode
SlotData::color
TrackEntry::mixing_from
TrackEntry::mixing_to
TrackEntry::next
TrackEntry::previous
- Remove unnecessary functions:
Atlas::find_page_mut
Atlas::find_region_mut
Atlas::pages_mut
Atlas::regions_mut
AtlasPage::atlas_mut
AtlasRegion::page_mut
BoneData::color_mut
BoneData::parent_mut
BoneData::set_length
BoneData::set_position
BoneData::set_rotation
BoneData::set_scale_x
BoneData::set_scale_y
BoneData::set_scale
BoneData::set_shear_x
BoneData::set_shear_y
BoneData::set_shear
BoneData::set_skin_required
BoneData::set_transform_mode
BoneData::set_x
BoneData::set_y
SkeletonData::animation_at_index_mut
SkeletonData::animations_mut
SkeletonData::bone_at_index_mut
SkeletonData::bones_mut
SkeletonData::default_skin_mut
SkeletonData::find_animation_mut
SkeletonData::find_bone_mut
SkeletonData::find_skin_mut
SkeletonData::find_slot_mut
SkeletonData::skin_at_index_mut
SkeletonData::skins_mut
SkeletonData::slot_at_index_mut
SkeletonData::slots_mut
SlotData::bone_data_mut
TrackEntry::set_animation_time
TrackEntry::set_mixing_from
TrackEntry::set_mixing_to
TrackEntry::set_next
TrackEntry::set_previous
- Remove unnecessary types:
AtlasPageMutIterator
AtlasRegionMutIterator
- Compilation fixes for new Rust lints
- All indices are now
usize
(previously some werei32
which lead to inconsistent APIs) - Events are nicer to work with using the new
AnimationEvent
enum. Skeleton::set_skin
andSkin::add_skin
marked unsafe (with safety comments)- Add
Skeleton::set_skins_by_name
as a safe alternative for the primary use case (conglomerate skins)
- Add
- New error type:
SpineError::PathNotUtf8
(removes some internalunwrap
calls) - Lots of clippy fixes
- Many functions now marked
#[must_use]
- Many functions now marked
- The following functions are no longer
unsafe
:MeshAttachment::new_linked_mesh
MeshAttachment::update_region
RegionAttachment::update_region
- Upstream fixes
- Fix IK constraint NaN when a parent bone has zero scale
- Handle skeleton loading problems without crashes (EsotericSoftware/spine-runtimes#2276)
- Fix crash when skeleton
hash
orspine
doesn't exist in JSON file (EsotericSoftware/spine-runtimes#2270) - Fix integer values in events broken with binary loader (EsotericSoftware/spine-runtimes#2281)
- Upstream fixes
- Dark color alpha inconsistent between binary and JSON formats (EsotericSoftware/spine-runtimes#2263)
- Atlas defaults are not handled (EsotericSoftware/spine-runtimes#2264)
- Set dark color's alpha to 0 for non-PMA and 1 for PMA textures in drawers (the dark color's alpha is not typically used, so this is merely a convenience)
- Fixes #5
- Adds
SkeletonClipping::clip_triangles
- Improved docs & tests