22 Commits

Author SHA1 Message Date
Byeong Gwan
880f3c59f5
[ios] backport from 4.3-beta: expose explict module for c & cpp (#2975)
* [ios] backport from 4.3-beta: expose explict module for c & cpp

- standard user can import spine-c based api as usual
- dedicated swift/cpp user can import cpp interface with explict import and enabling cpp interp
- objective-c user can import cpp using objective-c++

* [ios] expose `SpineCppLite` so that the library user can build there own runtime based on swift package => macOS, spriteKit texture
2025-11-17 15:01:21 +01:00
Mario Zechner
97d49b37b7 License header update 2025-05-26 13:24:06 +02:00
Byeong Gwan
123426d3e3
[iOS] fix additive, normal blending (#2822) 2025-05-05 11:57:51 +02:00
Byeong Gwan
759c8115c4
[iOS] Spine fix Metal deadlock (#2816) 2025-04-17 11:19:14 +02:00
Byeong Gwan
f04382bacd
expose multiplatform spine-engine target (#2806) 2025-04-10 11:28:34 +02:00
Byeong Gwan
88230582c2
[iOS] merge shader header and disable cpp-interp in example project (#2808)
* [iOS] disable objc-interp in example project & reuse struct header inside shader

* [iOS] support sharing Shader Header on both cocoapods and SPM
2025-04-10 11:27:24 +02:00
Byeong Gwan
6e5da45fa3
[iOS] update Swift inteface for more fine grained control(like external atlas loading) (#2772)
* update Swift inteface for more fine grained control

- move instance method to static method which does not require spine cpp pointer
- implement equality and hashing based on cpp pointer so that it can be stored in collection and compare it
- expose Atlas image count property so that the user can load the atlas resource lazily

- User can now Create Atlas by using Altas static function, and fetch whole resource path by iterating count of atlas page count

* [iOS] fix wrong y-axis alignment
2025-04-08 11:51:32 +02:00
Byeong Gwan
caf7700e2c
[iOS] Refactor error and data access (#2733)
* implement safe bounded data Access and cancellation supporting URLSession downloadTask

* declare specific SpineError type
declaring conformance to Error on String is discouraged, and Creating own Error type is recommended

* use explicit Error initializing rather than casing syntax (apply requested change)
2025-02-26 09:26:10 +01:00
Allen
7629d7dd35 [ios] Using SIMD to replace vector_float types can boost CPU performance on mid-range models. 2025-02-11 14:23:34 +01:00
Allen
b2061f1cf9
[ios] Using UnsafeBufferPointer to skip data copying and boost performance. (#2686)
* [ios] Using UnsafeBufferPointer to skip data copying and boost performance.

* [ios] Fix the extra data copying caused by using  and move the guard let condition to be earlier
2024-11-20 11:54:22 +01:00
kikiloveswift
000df07027
[ios] Fix the issue where the SkeletonBounds instance couldn’t be initialized (#2669)
Co-authored-by: liqiang <liqiangbj01@kanyun.com>
2024-11-14 12:21:14 +01:00
kikiloveswift
648170f325
[ios] Provide the ability to convert an Attachment into a BoundingBoxAttachment. (#2671)
Co-authored-by: liqiang <liqiangbj01@kanyun.com>
2024-11-14 12:19:17 +01:00
kikiloveswift
4f7fe00427
ADD: spine-ios support Cocoapods :Static Framework (#2658)
Co-authored-by: liqiang <liqiangbj01@kanyun.com>
2024-11-05 15:48:35 +01:00
Mario Zechner
19d3d1b29b [ios] Closes #2666, expose SkeletonBounds via spine-cpp-lite/Swift 2024-11-05 15:46:53 +01:00
Mario Zechner
f9fb7a3b0c [ios] Fix UIKit example. 2024-07-02 14:48:21 +02:00
Mario Zechner
520dd36c71 [ios] Switch to SkeletonRenderer, update README.md 2024-07-02 14:08:32 +02:00
Mario Zechner
a5b3bc709d [ios] Fix blending, use PMA assets in all examples. See #2555 2024-06-28 15:46:28 +02:00
Mario Zechner
7d6f0f9490 [ios] Fix blending, see #2555 2024-06-28 15:39:13 +02:00
Mario Zechner
a58346ff64 [ios] Add new spine-cpp-lite function. 2024-06-28 14:44:38 +02:00
Mario Zechner
da8131e0e1 [ios] Fix version in podspec files, update example/export/runtimes.sh 2024-06-18 10:46:12 +02:00
Mario Zechner
5dc0d2b665 [ios] Fix up repo URLs in podspec files 2024-06-18 10:25:54 +02:00
Denis Andrašec
0d5c3e3b18
Spine iOS (#2504)
* Add `spine-iOS` SPM package & example app (#1)

* Basic Mesh Rendering (#2)

* Spine C++ Swift Wrapper (#3)

* Load `Atlas` & `SkeletonData` (#4)

Load & dispose `Atlas` & `SkeletonData` from bundled files.

* Generate Swift classes from `spine-cpp-lite.h` (#5)

* Draw `SkeletonData` render commands (#6)

- Use `SkeletonData` render commands in the renderer
- Simple loop for animation support

* Add `BoundsProvider` (#7)

- Implement & support `BoundsProvider` classes
- Introduce alignment and content mode
- Update c to swift script to return optional for find prefixed methods

* Support `SpineController` & `Event` callbacks (#8)

- Support SpineController callbacks
- Support Event callbacks
- Apply tint color in renderer

* Support `DressUp` sample (#9)

- Add `DressUp` sample
- Move SpineViewController to SpineUIView
- Implement SpineUIView export to image

* Remove unused file

* Add `Physics` sample (#10)

- Add `Physics` sample
- Fix offsets in `IKFollowing` sample
- Fix `SpineView` background color

* Add `DebugRendering` sample (#11)

- Add `DebugRendering` sample
- Make `SpineUIView` transparent

* Move remaining files to SPM package (#12)

- Move remaining files to SPM package
- Rename `SpineWrapper` to `SpineCppLite`

* Load assets from different sources (#13)

- Load from bundle, file, http & drawable
- Apply correct blend mode & pma in renderer

* Add `Obj-C` + `UIKit` sample (#14)

- Add `Obj-C` + `UIKit` sample
- Update `Spine` to be usable in Obj-C code base

* Support CocoaPods (#15)

* Metal Best Practices (#16)

- Tripple Buffering
- Buffer Bindings
- Shared Objects

* Annotate functions that should return optional (#17)

* Add option to disable drawing when out of viewport (#18)

- Add option to disable drawing when out of viewport
- Move update clock to controller so multiple views can share it

* Add docs for public Spine classes/methods (#19)

* Fix various regressions (#20)

- Fix retain `SpineController` retain cycle
- Fix issue wehre images were not rendered
2024-06-18 10:02:25 +02:00