10521 Commits

Author SHA1 Message Date
Mario Zechner
37fef98fd2 feat(spine-ios): Add bindings generation script and remove CocoaPods support
- Add generate-bindings.sh script similar to spine-flutter
- Remove outdated CocoaPods example and podspecs
- Remove setup.sh (no longer needed as we use symlinks)
- CocoaPods users should use Swift Package Manager instead
2025-08-27 11:42:40 +02:00
Mario Zechner
ab53d271a4 feat(spine-ios): Add memory leak detection and fix PMA handling
- Enable debug extension on app startup for leak detection
- Add reportLeaks() calls when example views disappear
- Fix PMA flag handling by reading it from atlas page instead of hardcoding to false
- Add manual dispose() method to SpineController for explicit cleanup if needed

Note: SwiftUI view caching may show false positive leaks when views disappear,
as SwiftUI keeps views in memory for performance until they're truly no longer needed.
2025-08-27 11:21:23 +02:00
Mario Zechner
cb62bd70c0 feat(spine-ios): Add Objective-C support to generated Swift bindings
- Add NSObject inheritance to root classes for ObjC compatibility
- Add @objc(Spine<ClassName>) and @objcMembers annotations to all classes
- Fix property name conflicts (className -> rttiClassName, hash -> hashString)
- Use @nonobjc on subclass initializers to avoid selector conflicts
- Fix convenience init override modifiers
- Update ObjC example to use new API method names
- Update test to use rttiClassName property
2025-08-27 10:58:23 +02:00
Mario Zechner
81c9f5630a [ios] Fix SkeletonDrawableWrapper.update() to call directly into the drawable. 2025-08-26 17:38:08 +02:00
Mario Zechner
500c30319a [cpp] Remove spine-cpp-lite, superceeded by spine-c 2025-08-26 17:35:31 +02:00
Mario Zechner
9b345068b6 feat(spine-ios): Update SpineiOS and Example to work with new SpineSwift generated bindings
- Remove AnimationStateWrapper (no longer needed with new SpineSwift API)
- Replace Spine.Generated+Extensions.swift with simplified SpineSwiftExtensions.swift
- Update SpineiOS to use SpineSwift API instead of direct SpineC calls
- Fix namespace conflicts (ContentMode → SpineContentMode, Alignment → SpineAlignment)
- Update texture mapping to use atlas page index from RenderCommand pointer
- Fix all Example app API calls to match new SpineSwift generated API:
  - setAnimationByName → setAnimation
  - addAnimationByName → addAnimation
  - slot.color → slot.appliedPose.color.set()
  - EventType enum cases instead of constants
  - Physics enum with qualified name to avoid conflicts
  - setSkin2() instead of property assignment
  - Array iteration using indices instead of for-in
  - bone.worldX → bone.appliedPose.worldX
- Update Objective-C imports from Spine to SpineiOS module

Note: SimpleAnimationViewController.m still needs updates for full ObjC compatibility
2025-08-26 17:35:31 +02:00
Harald Csaszar
32a8552387 [unity] Update UI Toolkit package to 4.3-beta code changes. 2025-08-21 16:29:27 +02:00
Harald Csaszar
4add7da011 [csharp] Port of commit 7bd2f2e: Transform constraint scale is 1 if omitted. 2025-08-20 21:15:34 +02:00
Harald Csaszar
f2d9edd830 [csharp] Removed leftover unnecessary statement. 2025-08-19 19:05:41 +02:00
Mario Zechner
f1d98393d5 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.
2025-08-16 21:24:13 +02:00
Davide Tantillo
1309058850 [ts] Allow setSkin to accept null to unset skins. 2025-08-14 11:16:08 +02:00
Harald Csaszar
78f9e63420 [unity] Added option to BoneFollower components to follow attachment Z spacing offset. Defaults to false to maintain existing behaviour. 2025-08-13 23:10:43 +02:00
Harald Csaszar
38bc30cf54 [unity] Keep manually placed AnimationClip Events when updating skeleton assets (Mecanim) even when string param used. See #1838. 2025-08-13 23:05:23 +02:00
Harald Csaszar
52faafc978 [csharp] Increased package version for previous commit. 2025-08-13 22:58:30 +02:00
Davide Tantillo
7c28c3c1c7 [ts] Add SkeletonRendererCore (missing file). 2025-08-12 10:34:02 +02:00
Davide Tantillo
3fa97353f1 [ts] Add SkeletonRendererCore. 2025-08-12 10:32:17 +02:00
Davide Tantillo
75421b2a41 [ts][pixi-v8] Updated loaders to use new properties introduced in Pixi 8.12. 2025-08-12 09:34:56 +02:00
Mario Zechner
0b318d01fd [ios] VS Code debug launch config 2025-08-11 21:08:51 +02:00
Mario Zechner
1627bd81e5 [ios] Improved test 2025-08-11 20:29:54 +02:00
Mario Zechner
cc43fd549b feat(spine-ios): Implement SpineSwift high-level API mirroring spine_dart.dart
- Created SkeletonDrawable class wrapping spine_skeleton_drawable C functions
- Implemented AnimationStateEventManager singleton for event listener management
- Added helper types: Bounds and Vector structs
- Added extensions for Skeleton (bounds, getPosition)
- Added extensions for Skin (getEntries to iterate attachments)
- Added extensions for BonePose (coordinate transformations)
- Added extensions for AnimationState and TrackEntry (event listeners)
- Created skeleton_drawable_test_swift.swift using SpineSwift high-level API
- Updated test Package.swift to include SpineSwift dependency
- SpineSwift module now compiles with 0 errors

This completes the port of the high-level API from spine-flutter's spine_dart.dart
to SpineSwift, providing a clean Swift API that mirrors the Dart implementation.
2025-08-11 20:17:17 +02:00
Mario Zechner
9fdc0f0033 spine-ios: Fix Swift bindings compilation - arrays and type conversions
- Fixed array wrapper generation to use correct pointer casting
- Changed array count/length properties to return Int instead of Int32
- Fixed buffer access for primitive and object arrays (no assumingMemoryBound needed)
- Corrected size_t parameters to use Int instead of Int32
- Updated module imports (SpineSwift instead of Spine)
- Reduced compilation errors from 17,500 to 0 for SpineSwift module
- Remaining 27 errors are iOS-specific (UIKit) in SpineiOS module
2025-08-11 19:31:33 +02:00
Mario Zechner
a52ac67661 [ios] More Swift generator work. 2025-08-11 19:11:24 +02:00
Mario Zechner
ecbd700af4 Restructure spine-ios modules: SpineC, SpineSwift, SpineiOS
- Created clean module separation:
  - SpineC: C/C++ compilation only (working)
  - SpineSwift: Generated Swift bindings + platform-agnostic API
  - SpineiOS: iOS-specific UI components only
- Updated Package.swift with proper target structure
- Moved generated Swift files to SpineSwift/Generated
- Removed redundant SpineModule
- Created test with skeleton_drawable_test.swift ported from Dart
- Test successfully runs using SpineC module directly
- Note: SpineSwift has Objective-C selector conflicts to be fixed
2025-08-11 19:07:29 +02:00
Harald Csaszar
0786af7586 [unity] minor: increased package version for last commit. 2025-08-07 15:09:01 +02:00
Harald Csaszar
49999e417e [unity] Fixed BoneFollower MissingReferenceException when skeleton is destroyed. Closes #2903. 2025-08-07 15:06:01 +02:00
Nathan Sweet
18dfa3b634 [libgdx] parseRoot -> parseValue. 2025-08-06 21:02:45 -04:00
Nathan Sweet
3dad8462a3 [libgdx] Use JsonMatcher to parse skeleton JSON. 2025-08-05 20:07:38 -04:00
Harald Csaszar
53fb4bcce4 More URLs in license files updated from http to https. 2025-08-01 17:30:01 +02:00
Harald Csaszar
9e38893962 Updated license URL to https. 2025-08-01 16:46:59 +02:00
Nathan Sweet
59a9d31c83 [libgdx] Restored project files.
Reverts: [workflows] Add diff artifact to dart format check for debugging 106c39d0af7045eca89ebd080b37ea2c56bb3082.
2025-07-31 17:29:26 -04:00
Nathan Sweet
3fa62b2550 [libgdx] Prefer JDK StringBuilder. 2025-07-31 17:25:35 -04:00
Nathan Sweet
06e085660e Updated owl example project. 2025-07-31 17:25:35 -04:00
Mario Zechner
1945cd2f8d [formatters] Use xargs instead of find -exec for dart format to ensure proper argument passing 2025-07-31 21:43:27 +02:00
Mario Zechner
db98c15e9b [workflows] Fix upload-artifact version to v4 2025-07-31 21:34:22 +02:00
Mario Zechner
106c39d0af [workflows] Add diff artifact to dart format check for debugging 2025-07-31 21:32:13 +02:00
Mario Zechner
86f888b1fc [workflows] Fix dart format check workflow - use && instead of & 2025-07-31 21:28:31 +02:00
Mario Zechner
7eb414e2f7 [ios] codegen scaffold 2025-07-31 21:27:53 +02:00
Davide Tantillo
a07b7176fd [ts][pixi-v7][pixi-v8] Fix multiple autoUpdate calls setting multiple tickers (see #2900) 2025-07-31 17:29:55 +02:00
Davide Tantillo
fc6c925954 [ts][pixi-v7] Removed unnecessary update on autoUpdate warning. 2025-07-31 17:29:55 +02:00
Mario Zechner
cb32efcb28 [flutter] Clean-up 2025-07-31 02:08:06 +02:00
Mario Zechner
a2c752d855 [cpp][c] Fix warnings on Clang 2025-07-31 00:50:41 +02:00
Mario Zechner
ea5db08692 [flutter] More clean-up. 2025-07-31 00:50:22 +02:00
Mario Zechner
c9d7e687a9 [flutter] clean-up of ffi related code 2025-07-31 00:18:34 +02:00
Mario Zechner
d059ac01fd [flutter] Switch to wasm_ffi 2025-07-30 23:41:36 +02:00
Mario Zechner
4a715633a7 [tests] Haxe serializer 2025-07-30 19:10:13 +02:00
Mario Zechner
790caa8316 [flutter] Merge web_ffi_fork sources into spine-flutter, fix web build. 2025-07-30 19:04:49 +02:00
Mario Zechner
59829c3f69 [flutter] Full array capabilities, still needs checking against Dart ListBase. 2025-07-30 18:00:23 +02:00
Mario Zechner
eaa4d5dd54 [c] extension methods for bounds, worldToLocal etc. SPINE_OPAQUE_TYPE is now fully opaque. 2025-07-30 13:22:59 +02:00
Mario Zechner
f9fefee0c8 [cpp] Docker build for GCC testing, minor GCC fixes 2025-07-30 12:10:02 +02:00
Mario Zechner
e162835c31 [tests] Haxe SkeletonSerializer WIP 2025-07-30 10:10:49 +02:00