fix(spine-ios): Fix memory management and complete test implementation

- Changed code generator to emit dispose() methods instead of deinit
- Add override keyword for dispose() in subclasses
- Keep deinit with _ownsMemory check for array types
- Fix SkinExtensions to use correct C++ class names for attachments
- Complete skeleton_drawable_test implementations with no warnings
- Add comprehensive bone pose transformation tests
- Fix skin entries test to properly show attachments

The memory management fix prevents Swift wrappers from accidentally
disposing C++ objects they don't own when created via fromPointer.
This commit is contained in:
Mario Zechner 2025-08-16 21:23:59 +02:00
parent 1309058850
commit f1d98393d5
108 changed files with 284 additions and 180 deletions

View File

@ -70,17 +70,17 @@ extension Skin {
let className = String(cString: classNamePtr)
switch className {
case "spine_region_attachment":
case "RegionAttachment":
attachment = RegionAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_region_attachment_wrapper.self))
case "spine_mesh_attachment":
case "MeshAttachment":
attachment = MeshAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_mesh_attachment_wrapper.self))
case "spine_bounding_box_attachment":
case "BoundingBoxAttachment":
attachment = BoundingBoxAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_bounding_box_attachment_wrapper.self))
case "spine_clipping_attachment":
case "ClippingAttachment":
attachment = ClippingAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_clipping_attachment_wrapper.self))
case "spine_path_attachment":
case "PathAttachment":
attachment = PathAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_path_attachment_wrapper.self))
case "spine_point_attachment":
case "PointAttachment":
attachment = PointAttachment(fromPointer: UnsafeMutableRawPointer(attachmentPtr).assumingMemoryBound(to: spine_point_attachment_wrapper.self))
default:
// Unknown attachment type, treat as generic Attachment

View File

@ -94,7 +94,7 @@ public class Animation {
return result
}
deinit {
public func dispose() {
spine_animation_dispose(_ptr.assumingMemoryBound(to: spine_animation_wrapper.self))
}
}

View File

@ -59,7 +59,7 @@ public class Atlas {
return result.map { AtlasRegion(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_atlas_dispose(_ptr.assumingMemoryBound(to: spine_atlas_wrapper.self))
}
}

View File

@ -109,7 +109,7 @@ public class Bone: PosedActive, Posed, Update {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_bone_dispose(_ptr.assumingMemoryBound(to: spine_bone_wrapper.self))
}
}

View File

@ -138,7 +138,7 @@ public class Color {
return Color(fromPointer: result!)
}
deinit {
public func dispose() {
spine_color_dispose(_ptr.assumingMemoryBound(to: spine_color_wrapper.self))
}
}

View File

@ -105,7 +105,7 @@ public class Event {
}
}
deinit {
public func dispose() {
spine_event_dispose(_ptr.assumingMemoryBound(to: spine_event_wrapper.self))
}
}

View File

@ -65,7 +65,7 @@ public class Polygon {
}
}
deinit {
public func dispose() {
spine_polygon_dispose(_ptr.assumingMemoryBound(to: spine_polygon_wrapper.self))
}
}

View File

@ -55,7 +55,7 @@ public class Rtti {
return result
}
deinit {
public func dispose() {
spine_rtti_dispose(_ptr.assumingMemoryBound(to: spine_rtti_wrapper.self))
}
}

View File

@ -104,7 +104,7 @@ public class Sequence {
return String(cString: result!)
}
deinit {
public func dispose() {
spine_sequence_dispose(_ptr.assumingMemoryBound(to: spine_sequence_wrapper.self))
}
}

View File

@ -320,7 +320,7 @@ public class Skeleton {
spine_skeleton_set_color_2(_ptr.assumingMemoryBound(to: spine_skeleton_wrapper.self), r, g, b, a)
}
deinit {
public func dispose() {
spine_skeleton_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_wrapper.self))
}
}

View File

@ -108,7 +108,7 @@ public class Skin {
spine_skin_copy_skin(_ptr.assumingMemoryBound(to: spine_skin_wrapper.self), other._ptr.assumingMemoryBound(to: spine_skin_wrapper.self))
}
deinit {
public func dispose() {
spine_skin_dispose(_ptr.assumingMemoryBound(to: spine_skin_wrapper.self))
}
}

View File

@ -109,7 +109,7 @@ public class Slider: PosedActive, Posed, Constraint {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_slider_dispose(_ptr.assumingMemoryBound(to: spine_slider_wrapper.self))
}
}

View File

@ -82,7 +82,7 @@ public class Slot: Posed {
spine_slot_constrained(_ptr.assumingMemoryBound(to: spine_slot_wrapper.self))
}
deinit {
public func dispose() {
spine_slot_dispose(_ptr.assumingMemoryBound(to: spine_slot_wrapper.self))
}
}

View File

@ -53,7 +53,7 @@ public class AlphaTimeline: CurveTimeline1, SlotTimeline {
}
}
deinit {
public func dispose() {
spine_alpha_timeline_dispose(_ptr.assumingMemoryBound(to: spine_alpha_timeline_wrapper.self))
}
}

View File

@ -151,7 +151,7 @@ public class AnimationState {
return TrackEntry(fromPointer: result!)
}
deinit {
public func dispose() {
spine_animation_state_dispose(_ptr.assumingMemoryBound(to: spine_animation_state_wrapper.self))
}
}

View File

@ -77,7 +77,7 @@ public class AnimationStateData {
spine_animation_state_data_set_mix_2(_ptr.assumingMemoryBound(to: spine_animation_state_data_wrapper.self), from._ptr.assumingMemoryBound(to: spine_animation_wrapper.self), to._ptr.assumingMemoryBound(to: spine_animation_wrapper.self), duration)
}
deinit {
public func dispose() {
spine_animation_state_data_dispose(_ptr.assumingMemoryBound(to: spine_animation_state_data_wrapper.self))
}
}

View File

@ -80,7 +80,7 @@ public class AtlasAttachmentLoader: AttachmentLoader {
return result.map { AtlasRegion(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_atlas_attachment_loader_dispose(_ptr.assumingMemoryBound(to: spine_atlas_attachment_loader_wrapper.self))
}
}

View File

@ -160,7 +160,7 @@ public class AtlasPage {
return result
}
deinit {
public func dispose() {
spine_atlas_page_dispose(_ptr.assumingMemoryBound(to: spine_atlas_page_wrapper.self))
}
}

View File

@ -203,7 +203,7 @@ public class AtlasRegion: TextureRegion {
}
}
deinit {
public override func dispose() {
spine_atlas_region_dispose(_ptr.assumingMemoryBound(to: spine_atlas_region_wrapper.self))
}
}

View File

@ -57,7 +57,7 @@ public class AttachmentTimeline: Timeline, SlotTimeline {
spine_attachment_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_attachment_timeline_wrapper.self), frame, time, attachmentName)
}
deinit {
public func dispose() {
spine_attachment_timeline_dispose(_ptr.assumingMemoryBound(to: spine_attachment_timeline_wrapper.self))
}
}

View File

@ -93,7 +93,7 @@ public class BoneData: PosedData {
return BoneLocal(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_bone_data_dispose(_ptr.assumingMemoryBound(to: spine_bone_data_wrapper.self))
}
}

View File

@ -144,7 +144,7 @@ public class BoneLocal {
spine_bone_local_set_scale_1(_ptr.assumingMemoryBound(to: spine_bone_local_wrapper.self), scaleX, scaleY)
}
deinit {
public func dispose() {
spine_bone_local_dispose(_ptr.assumingMemoryBound(to: spine_bone_local_wrapper.self))
}
}

View File

@ -175,7 +175,7 @@ public class BonePose: BoneLocal, Update {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_bone_pose_dispose(_ptr.assumingMemoryBound(to: spine_bone_pose_wrapper.self))
}
}

View File

@ -48,7 +48,7 @@ public class BoundingBoxAttachment: VertexAttachment {
return Color(fromPointer: result!)
}
deinit {
public func dispose() {
spine_bounding_box_attachment_dispose(_ptr.assumingMemoryBound(to: spine_bounding_box_attachment_wrapper.self))
}
}

View File

@ -58,7 +58,7 @@ public class ClippingAttachment: VertexAttachment {
return Color(fromPointer: result!)
}
deinit {
public func dispose() {
spine_clipping_attachment_dispose(_ptr.assumingMemoryBound(to: spine_clipping_attachment_wrapper.self))
}
}

View File

@ -75,7 +75,7 @@ public class DeformTimeline: SlotCurveTimeline {
return result
}
deinit {
public func dispose() {
spine_deform_timeline_dispose(_ptr.assumingMemoryBound(to: spine_deform_timeline_wrapper.self))
}
}

View File

@ -47,7 +47,7 @@ public class DrawOrderTimeline: Timeline {
spine_draw_order_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_draw_order_timeline_wrapper.self), frame, time, drawOrder?._ptr.assumingMemoryBound(to: spine_array_int_wrapper.self))
}
deinit {
public func dispose() {
spine_draw_order_timeline_dispose(_ptr.assumingMemoryBound(to: spine_draw_order_timeline_wrapper.self))
}
}

View File

@ -110,7 +110,7 @@ public class EventData {
}
}
deinit {
public func dispose() {
spine_event_data_dispose(_ptr.assumingMemoryBound(to: spine_event_data_wrapper.self))
}
}

View File

@ -75,7 +75,7 @@ public class EventQueueEntry {
}
}
deinit {
public func dispose() {
spine_event_queue_entry_dispose(_ptr.assumingMemoryBound(to: spine_event_queue_entry_wrapper.self))
}
}

View File

@ -52,7 +52,7 @@ public class EventTimeline: Timeline {
spine_event_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_event_timeline_wrapper.self), frame, event._ptr.assumingMemoryBound(to: spine_event_wrapper.self))
}
deinit {
public func dispose() {
spine_event_timeline_dispose(_ptr.assumingMemoryBound(to: spine_event_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromRotate: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_rotate_dispose(_ptr.assumingMemoryBound(to: spine_from_rotate_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromScaleX: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_scale_x_dispose(_ptr.assumingMemoryBound(to: spine_from_scale_x_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromScaleY: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_scale_y_dispose(_ptr.assumingMemoryBound(to: spine_from_scale_y_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromShearY: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_shear_y_dispose(_ptr.assumingMemoryBound(to: spine_from_shear_y_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromX: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_x_dispose(_ptr.assumingMemoryBound(to: spine_from_x_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class FromY: FromProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_from_y_dispose(_ptr.assumingMemoryBound(to: spine_from_y_wrapper.self))
}
}

View File

@ -122,7 +122,7 @@ public class IkConstraint: PosedActive, Posed, Constraint {
spine_ik_constraint_apply_2(skeleton._ptr.assumingMemoryBound(to: spine_skeleton_wrapper.self), parent._ptr.assumingMemoryBound(to: spine_bone_pose_wrapper.self), child._ptr.assumingMemoryBound(to: spine_bone_pose_wrapper.self), targetX, targetY, bendDirection, stretch, uniform, softness, mix)
}
deinit {
public override func dispose() {
spine_ik_constraint_dispose(_ptr.assumingMemoryBound(to: spine_ik_constraint_wrapper.self))
}
}

View File

@ -103,7 +103,7 @@ public class IkConstraintData: PosedData, ConstraintData {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_ik_constraint_data_dispose(_ptr.assumingMemoryBound(to: spine_ik_constraint_data_wrapper.self))
}
}

View File

@ -99,7 +99,7 @@ public class IkConstraintPose {
spine_ik_constraint_pose_set(_ptr.assumingMemoryBound(to: spine_ik_constraint_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_ik_constraint_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_ik_constraint_pose_dispose(_ptr.assumingMemoryBound(to: spine_ik_constraint_pose_wrapper.self))
}
}

View File

@ -57,7 +57,7 @@ public class IkConstraintTimeline: CurveTimeline, ConstraintTimeline {
spine_ik_constraint_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_ik_constraint_timeline_wrapper.self), frame, time, mix, softness, bendDirection, compress, stretch)
}
deinit {
public func dispose() {
spine_ik_constraint_timeline_dispose(_ptr.assumingMemoryBound(to: spine_ik_constraint_timeline_wrapper.self))
}
}

View File

@ -57,7 +57,7 @@ public class InheritTimeline: Timeline, BoneTimeline {
spine_inherit_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_inherit_timeline_wrapper.self), frame, time, spine_inherit(rawValue: UInt32(inherit.rawValue)))
}
deinit {
public func dispose() {
spine_inherit_timeline_dispose(_ptr.assumingMemoryBound(to: spine_inherit_timeline_wrapper.self))
}
}

View File

@ -162,7 +162,7 @@ public class MeshAttachment: VertexAttachment {
return MeshAttachment(fromPointer: result!)
}
deinit {
public func dispose() {
spine_mesh_attachment_dispose(_ptr.assumingMemoryBound(to: spine_mesh_attachment_wrapper.self))
}
}

View File

@ -78,7 +78,7 @@ public class PathAttachment: VertexAttachment {
return Color(fromPointer: result!)
}
deinit {
public func dispose() {
spine_path_attachment_dispose(_ptr.assumingMemoryBound(to: spine_path_attachment_wrapper.self))
}
}

View File

@ -114,7 +114,7 @@ public class PathConstraint: PosedActive, Posed, Constraint {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_path_constraint_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_wrapper.self))
}
}

View File

@ -133,7 +133,7 @@ public class PathConstraintData: PosedData, ConstraintData {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_path_constraint_data_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_data_wrapper.self))
}
}

View File

@ -57,7 +57,7 @@ public class PathConstraintMixTimeline: CurveTimeline, ConstraintTimeline {
spine_path_constraint_mix_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_path_constraint_mix_timeline_wrapper.self), frame, time, mixRotate, mixX, mixY)
}
deinit {
public func dispose() {
spine_path_constraint_mix_timeline_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_mix_timeline_wrapper.self))
}
}

View File

@ -99,7 +99,7 @@ public class PathConstraintPose {
spine_path_constraint_pose_set(_ptr.assumingMemoryBound(to: spine_path_constraint_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_path_constraint_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_path_constraint_pose_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_pose_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PathConstraintPositionTimeline: ConstraintTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_path_constraint_position_timeline_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_position_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PathConstraintSpacingTimeline: ConstraintTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_path_constraint_spacing_timeline_dispose(_ptr.assumingMemoryBound(to: spine_path_constraint_spacing_timeline_wrapper.self))
}
}

View File

@ -121,7 +121,7 @@ public class PhysicsConstraint: PosedActive, Posed, Constraint {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_physics_constraint_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintDampingTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_damping_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_damping_timeline_wrapper.self))
}
}

View File

@ -228,7 +228,7 @@ public class PhysicsConstraintData: PosedData, ConstraintData {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_physics_constraint_data_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_data_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintGravityTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_gravity_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_gravity_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintInertiaTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_inertia_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_inertia_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintMassTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_mass_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_mass_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintMixTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_mix_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_mix_timeline_wrapper.self))
}
}

View File

@ -119,7 +119,7 @@ public class PhysicsConstraintPose {
spine_physics_constraint_pose_set(_ptr.assumingMemoryBound(to: spine_physics_constraint_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_physics_constraint_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_physics_constraint_pose_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_pose_wrapper.self))
}
}

View File

@ -57,7 +57,7 @@ public class PhysicsConstraintResetTimeline: Timeline, ConstraintTimeline {
spine_physics_constraint_reset_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_physics_constraint_reset_timeline_wrapper.self), frame, time)
}
deinit {
public func dispose() {
spine_physics_constraint_reset_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_reset_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintStrengthTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_strength_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_strength_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class PhysicsConstraintWindTimeline: PhysicsConstraintTimeline {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_physics_constraint_wind_timeline_dispose(_ptr.assumingMemoryBound(to: spine_physics_constraint_wind_timeline_wrapper.self))
}
}

View File

@ -83,7 +83,7 @@ public class PointAttachment: Attachment {
return result
}
deinit {
public func dispose() {
spine_point_attachment_dispose(_ptr.assumingMemoryBound(to: spine_point_attachment_wrapper.self))
}
}

View File

@ -52,7 +52,7 @@ public class PosedActive {
}
}
deinit {
public func dispose() {
spine_posed_active_dispose(_ptr.assumingMemoryBound(to: spine_posed_active_wrapper.self))
}
}

View File

@ -60,7 +60,7 @@ public class PosedData {
}
}
deinit {
public func dispose() {
spine_posed_data_dispose(_ptr.assumingMemoryBound(to: spine_posed_data_wrapper.self))
}
}

View File

@ -166,7 +166,7 @@ public class RegionAttachment: Attachment {
spine_region_attachment_compute_world_vertices_2(_ptr.assumingMemoryBound(to: spine_region_attachment_wrapper.self), slot._ptr.assumingMemoryBound(to: spine_slot_wrapper.self), worldVertices._ptr.assumingMemoryBound(to: spine_array_float_wrapper.self), offset, stride)
}
deinit {
public func dispose() {
spine_region_attachment_dispose(_ptr.assumingMemoryBound(to: spine_region_attachment_wrapper.self))
}
}

View File

@ -90,7 +90,7 @@ public class RenderCommand {
return result.map { RenderCommand(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_render_command_dispose(_ptr.assumingMemoryBound(to: spine_render_command_wrapper.self))
}
}

View File

@ -47,7 +47,7 @@ public class Rgb2Timeline: SlotCurveTimeline {
spine_rgb2_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_rgb2_timeline_wrapper.self), frame, time, r, g, b, r2, g2, b2)
}
deinit {
public func dispose() {
spine_rgb2_timeline_dispose(_ptr.assumingMemoryBound(to: spine_rgb2_timeline_wrapper.self))
}
}

View File

@ -47,7 +47,7 @@ public class RgbTimeline: SlotCurveTimeline {
spine_rgb_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_rgb_timeline_wrapper.self), frame, time, r, g, b)
}
deinit {
public func dispose() {
spine_rgb_timeline_dispose(_ptr.assumingMemoryBound(to: spine_rgb_timeline_wrapper.self))
}
}

View File

@ -47,7 +47,7 @@ public class Rgba2Timeline: SlotCurveTimeline {
spine_rgba2_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_rgba2_timeline_wrapper.self), frame, time, r, g, b, a, r2, g2, b2)
}
deinit {
public func dispose() {
spine_rgba2_timeline_dispose(_ptr.assumingMemoryBound(to: spine_rgba2_timeline_wrapper.self))
}
}

View File

@ -47,7 +47,7 @@ public class RgbaTimeline: SlotCurveTimeline {
spine_rgba_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_rgba_timeline_wrapper.self), frame, time, r, g, b, a)
}
deinit {
public func dispose() {
spine_rgba_timeline_dispose(_ptr.assumingMemoryBound(to: spine_rgba_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class RotateTimeline: BoneTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_rotate_timeline_dispose(_ptr.assumingMemoryBound(to: spine_rotate_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ScaleTimeline: BoneTimeline2 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_scale_timeline_dispose(_ptr.assumingMemoryBound(to: spine_scale_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ScaleXTimeline: BoneTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_scale_x_timeline_dispose(_ptr.assumingMemoryBound(to: spine_scale_x_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ScaleYTimeline: BoneTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_scale_y_timeline_dispose(_ptr.assumingMemoryBound(to: spine_scale_y_timeline_wrapper.self))
}
}

View File

@ -79,7 +79,7 @@ public class SequenceTimeline: Timeline, SlotTimeline {
spine_sequence_timeline_set_frame(_ptr.assumingMemoryBound(to: spine_sequence_timeline_wrapper.self), frame, time, spine_sequence_mode(rawValue: UInt32(mode.rawValue)), index, delay)
}
deinit {
public func dispose() {
spine_sequence_timeline_dispose(_ptr.assumingMemoryBound(to: spine_sequence_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ShearTimeline: BoneTimeline2 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_shear_timeline_dispose(_ptr.assumingMemoryBound(to: spine_shear_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ShearXTimeline: BoneTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_shear_x_timeline_dispose(_ptr.assumingMemoryBound(to: spine_shear_x_timeline_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ShearYTimeline: BoneTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_shear_y_timeline_dispose(_ptr.assumingMemoryBound(to: spine_shear_y_timeline_wrapper.self))
}
}

View File

@ -67,7 +67,7 @@ public class SkeletonBinary {
return result.map { SkeletonData(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_skeleton_binary_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_binary_wrapper.self))
}
}

View File

@ -134,7 +134,7 @@ public class SkeletonBounds {
return result
}
deinit {
public func dispose() {
spine_skeleton_bounds_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_bounds_wrapper.self))
}
}

View File

@ -83,7 +83,7 @@ public class SkeletonClipping {
return result
}
deinit {
public func dispose() {
spine_skeleton_clipping_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_clipping_wrapper.self))
}
}

View File

@ -220,7 +220,7 @@ public class SkeletonData {
return result.map { Animation(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_skeleton_data_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_data_wrapper.self))
}
}

View File

@ -72,7 +72,7 @@ public class SkeletonJson {
return result.map { SkeletonData(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_skeleton_json_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_json_wrapper.self))
}
}

View File

@ -50,7 +50,7 @@ public class SkeletonRenderer {
return result.map { RenderCommand(fromPointer: $0) }
}
deinit {
public func dispose() {
spine_skeleton_renderer_dispose(_ptr.assumingMemoryBound(to: spine_skeleton_renderer_wrapper.self))
}
}

View File

@ -176,7 +176,7 @@ public class SliderData: PosedData, ConstraintData {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_slider_data_dispose(_ptr.assumingMemoryBound(to: spine_slider_data_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class SliderMixTimeline: ConstraintTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_slider_mix_timeline_dispose(_ptr.assumingMemoryBound(to: spine_slider_mix_timeline_wrapper.self))
}
}

View File

@ -69,7 +69,7 @@ public class SliderPose {
spine_slider_pose_set(_ptr.assumingMemoryBound(to: spine_slider_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_slider_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_slider_pose_dispose(_ptr.assumingMemoryBound(to: spine_slider_pose_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class SliderTimeline: ConstraintTimeline1 {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_slider_timeline_dispose(_ptr.assumingMemoryBound(to: spine_slider_timeline_wrapper.self))
}
}

View File

@ -88,7 +88,7 @@ public class SlotData: PosedData {
return SlotPose(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_slot_data_dispose(_ptr.assumingMemoryBound(to: spine_slot_data_wrapper.self))
}
}

View File

@ -112,7 +112,7 @@ public class SlotPose {
spine_slot_pose_set(_ptr.assumingMemoryBound(to: spine_slot_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_slot_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_slot_pose_dispose(_ptr.assumingMemoryBound(to: spine_slot_pose_wrapper.self))
}
}

View File

@ -115,7 +115,7 @@ public class TextureRegion {
return Rtti(fromPointer: result!)
}
deinit {
public func dispose() {
spine_texture_region_dispose(_ptr.assumingMemoryBound(to: spine_texture_region_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToRotate: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_rotate_dispose(_ptr.assumingMemoryBound(to: spine_to_rotate_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToScaleX: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_scale_x_dispose(_ptr.assumingMemoryBound(to: spine_to_scale_x_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToScaleY: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_scale_y_dispose(_ptr.assumingMemoryBound(to: spine_to_scale_y_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToShearY: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_shear_y_dispose(_ptr.assumingMemoryBound(to: spine_to_shear_y_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToX: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_x_dispose(_ptr.assumingMemoryBound(to: spine_to_x_wrapper.self))
}
}

View File

@ -43,7 +43,7 @@ public class ToY: ToProperty {
self.init(fromPointer: ptr!)
}
deinit {
public func dispose() {
spine_to_y_dispose(_ptr.assumingMemoryBound(to: spine_to_y_wrapper.self))
}
}

View File

@ -325,7 +325,7 @@ public class TrackEntry {
spine_track_entry_set_mix_duration_2(_ptr.assumingMemoryBound(to: spine_track_entry_wrapper.self), mixDuration, delay)
}
deinit {
public func dispose() {
spine_track_entry_dispose(_ptr.assumingMemoryBound(to: spine_track_entry_wrapper.self))
}
}

View File

@ -114,7 +114,7 @@ public class TransformConstraint: PosedActive, Posed, Constraint {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_transform_constraint_dispose(_ptr.assumingMemoryBound(to: spine_transform_constraint_wrapper.self))
}
}

View File

@ -198,7 +198,7 @@ public class TransformConstraintData: PosedData, ConstraintData {
return Rtti(fromPointer: result!)
}
deinit {
public override func dispose() {
spine_transform_constraint_data_dispose(_ptr.assumingMemoryBound(to: spine_transform_constraint_data_wrapper.self))
}
}

View File

@ -109,7 +109,7 @@ public class TransformConstraintPose {
spine_transform_constraint_pose_set(_ptr.assumingMemoryBound(to: spine_transform_constraint_pose_wrapper.self), pose._ptr.assumingMemoryBound(to: spine_transform_constraint_pose_wrapper.self))
}
deinit {
public func dispose() {
spine_transform_constraint_pose_dispose(_ptr.assumingMemoryBound(to: spine_transform_constraint_pose_wrapper.self))
}
}

Some files were not shown because too many files have changed in this diff Show More