155 Commits

Author SHA1 Message Date
Mario Zechner
13095faa8c [flutter] Upgrade to AGP 8.5.1, NDK 28.1.13356709, minSDK 21, Closes #2849 2025-05-16 11:02:54 +02:00
Davide
c9b040f797
[ts] Add spine-webcomponents package
* [ts] poc wegl overlay

* [ts] poc wegl overlay

* canvas4

* overlay 4

* overlay

* overlay fix scroll cut

* Zoom fix - WIP horizontal scroll bug see comment at line 495

* Scroll should be resolved

* web component

* Loading

* mostly work - when overflow top/bottom...are > 0, widgets slightly jump on up and down fast scroll.

* Renamed

* Add OffScreenUpdateBehaviour

* Fixed loading spinner example

* Translate is done each frame through requestAnimationFrame.

* Added clip.

* Removed SpineCanvasApp dependency.

* Removed code duplication for clipping into div

* Refactor drag logic. Drag works with clip too.

* WIP - Doc before refactor

* WIP - Refactor + animation and skin attribute change will reinit the widget

* Modified export script to copy chibi

* Fix zoom bug due to screen size remaining the same at different zoom level.

* Removed useless changes on other classes.

* Removed custom LoadingSpinnerWindget class. Added a new specific method in LoadingSpinner.

* Fix 1 pixel misalignment in non clip mode.

* Cleaned webcomponent example.

* Made span fps display configurable.

* Made some changes to make it work on old browsers.

* Manage lifecycle for Input and SpineWebComponentOverlay. Missing SpineWebComponentWidget.

* Managed lifecycle for SpineWebComponentWidget.

* Fixed input remove listener. Run tsfmt.

* Fixed infinite requestAnimationFrame calls.

* Fix x-axis and y-axis not working in clip mode.

* Fix widget using overlay before overlay webcomponent is fully upgraded.

* Restore resize observer since the window resize event does not fire on body resize, but on window resize. It's supported by 93% of the browsers.

* Add padding attributes/properties.

* Exposed parameters to set bounds.
Deeply changed how bounds work, especially for the fact that they are not auto recalculated anymore if the animation is changed (unless autoRecalculateBounds is set to true).

* Changes to make the widget more dynamic while changing attributes. See now webcomponent-gui.html.

* Initial support of spine-widget into scrollable containers, and overlay-id for multiple spine-overlay.
working

* WIP - Added/Changed:
- overlay loading: now overlay is moved as the last element from where it is inserted to avoid widgets covered by backgrounds of html elements after it.
- default overlayId
- widget position in overlay coordinates (worldX, worldY) (experimental)
- cursor position on widget world (cursorWorldX, cursorWorldY) (experimental)
- jsonSkeletonKey: allow to load a specific skeleton in json containing multiple skeletons
- onViewportManualStart: start the widget when in manual-start and enters the viewport the first time
- overlayAssignedPromise: a promise that resolves when the overlay is assigned to the widget. Reads the comment on it
- appendTo: to append the widget created using js and wait for the overlayAssignedPromise to resolve
- changed how loadingPromise works
- added cursorCanvasX, cursorCanvasY, cursorWorldX, cursorWorldY to overlay (experimental)

* Docs and minor fixes.

* Fixed example.

* Allow multiple widgets for the same HTMLElement

* Simplified clip to div by using scissor rather than changing viewport+camera.
In this way we can treat coordinates equally for cliped and not clipped widgets!

* Simplified drag calculation and drag debug removing an additional div.

* WIP - Add interactivity events. isdraggable is currently broken.

* Add interactivity events.

* Fixed a bug where an infinite loop occurred in Firefox when compareDocumentPosition results in DOCUMENT_POSITION_DISCONNECTED.

In both Chrome and Firefox, when an element is inside a webcomponent the comparison results in DOCUMENT_POSITION_DISCONNECTED. But in Firefox the element result in DOCUMENT_POSITION_FOLLOWING too, leading to an infinite loop.

* Fix physicsTranslate y opposite direction while dragging.

* Add followSlot method

* Add animations, animations-bound and default-mix attributes.

* Original event is passed to bounds and slot callbacks.

* Made overlay canvas size consistent across different browsers. Base size is not anymore the screen size due to browser limitations, but the window size. This will trigger additional canvas resize on window resize.

* Reduce DPI if canvas is too big to avoid page crash - this happen on webpage on mobile with high dpi and missing meta viewport tag with width=device-width.

* Pma properties on atlas is used to detect pma textures.

* Add rawData attribute to pass s stringified JSON object for inline base64 assets.

* format

* Prevent useless resize.

* Prevent error on disconnected callback

* Update tutorial.

* Fixed multiple click events on mobile touches. Add team example.

* Fixed slot interaction issue.

* Resize overlay when follow slot element is added.

* Add interactive widget example.

* Temporarily add windmill only manually to webgl assets

* Move getBounding in scrollable case.

* formatter

* Fixed overlay disconnectedCallback.

* Overlay should load not for DOMContentLoaded event only if document has already complete loading.

* Overlay parent bounding box determined only if necessary.

* Overlay needs to consider border if it's scrollable.

* Fixed issues with slot events on mobile.

* food app and cleanup

* Make overlayAssignedPromise private.

* Change scrollable to appendedToBody, make it private and determine it at dom connect.

* scrollable-tweak-off changed to no-auto-parent-transform.

* Update bounds and slot interaction method names.

* getHTMLElementReference to getHostElement.

* recalculateBounds and autoRecalculateBounds to calculateBounds and autoCalculateBounds.

* dpi to dpr and transform DPR to DevicePixelRatio when needed. Add @internal tag to internal fields.

* Properties rename.

* Better comments and variable names for canvas resize related stuff.

* callbacks renamed consistently.

* for each to for of.

* Update other names.

* onScreenManualStart to startWhenVisible. startWhenVisible set manualStart to true.

* fix return to continue in for of.

* Refcounter for asset manager and gl resources disposal for webcomponent.

* Fixes to asset manager ref counter.

* Add dispose example.

* Fix overlay init not completed in some scenario.
DOMContentLoaded is invoked only when document.readyState is interactive.

* Cleaned up examples.

* spinner to no-spinner.

* Move webcomponent to spine-widget folder.

* start won't reset bounds.

* Remove test file.

* Moved team example in its own page.

* Improved tutorial explanations.

* Moved some examples in their own pages.

* Formatter.

* Widgets dragged can be dragged even if host is offscreen.

* General refactor. spine-widget to spine-skeleton.

* spine-widget package renamed to spine-webcomponents.

* Moved assets to a single assets folder.

* Run formatter.

* Add beta notice.

* Changed widget occurrences to webcomponents.
2025-05-09 15:59:00 +02:00
Davide
b2c12b9d06
[ts][phaser-v3][phaser-v4] New runtime for phaser-v4. Moved phaser to phaser-v3 (#2815) 2025-04-16 17:01:53 +02:00
Mario Zechner
adcb11985f [godot] GH extension build 2024-12-11 18:59:44 +01:00
Mario Zechner
41a6a96785 [godot] Ignore bin folder in Git. 2024-12-10 16:02:26 +01:00
badlogic
72846c46f0 [godot] Rework extension build system. 2024-12-10 15:45:17 +01:00
Davide Tantillo
6cc8809406 [ts][pixi] Move pixi to pixi-v7 2024-11-07 14:49:36 +01:00
Mat Groves
ecbe9b0247
Add PixiJS v8 support to spine (#2641)
* add v8 support to spine!

* Renamed examples folder for consistency.

* Gitignore dist.

* Tsconfig.

* Package json.

* Modification due to strictNullChecks=true.

* Run tsfmt.

* Use clipper.clipTriangles not deprecated version.

* Aligned example to spine-pixi (v7).

* Fix clipping dark tint wrong param.

* Removed useless clipper.

* Push texture issue repro example

* fix attachment.uvs by copying them

* SlotObject alpha connected to skeleton and slot alpha.

* add topology for future v8 release

* Dark tint rendered is enabled if at least one slot has dark tint, or by configuration.
Fixed clipping while using dark tint.

* Optimized clipping by using clipTrianglesUnpacked.

* Repro example for clipping issue.

* Aligned constructor and from signature of spine-pixi(-v7) to v8. Deprecated old signatures.

* Removed useless function.

* Fixed clipping issue flagging attachment as dirty if indices change.

* Clipping attachments clip slot object through Pixi Graphics masks.

* Add autoUpdate in SpineFromOptions

* Added javadoc to pixiv8

* Updated pixi7 examples to use SpineFromOptions interface

* Aligned atlas loader to use texturePreference for bundles.

* Add pool to manage slot objects masks

* Fixed minor issues with SpineDebugRenderer

* Aligned spine-pixi-v8 with latest spine-core

* Updated build and publish script

---------

Co-authored-by: Davide Tantillo <iamdjj@gmail.com>
2024-11-06 17:23:01 +01:00
Mario Zechner
32be2c1ef1 [godot] Fix build script for Android template, closes #2657 2024-10-23 11:21:48 +02:00
Mario Zechner
a3fa4e926f [godot] Clean-up, properly point to editor binaries in .gdextension file. 2024-10-08 17:16:20 +02:00
Mario Zechner
887f20435f [godot] Non-working but compiling state. Crashes when registering various inspectors/editor plugins 2024-10-07 18:07:30 +02:00
Mario Zechner
e9b43f9c73 [godot] More GDExtension work. SpineAnimationTrack, animation mixes editor plugin and SpineMesh2D are non-functional due to missing APIs in godot-cpp 2024-10-07 13:55:01 +02:00
Mario Zechner
1101e71ec3 GDExtension support, heavy WIP 2024-07-05 19:05:42 +02:00
Mario Zechner
fdc80774d0 Update .gitignore 2024-07-05 17:19:17 +02:00
badlogic
3a83495e5b Update gitignore 2024-06-30 21:12:51 +02:00
Mario Zechner
ac7f0654a6 [cpp][flutter] Added spine-lite-cpp, changed spine-flutter to use spine-lite-cpp. 2024-04-19 14:43:00 +02:00
Mario Zechner
06005bf0de [ue] rename spine-ue4 to spine-ue 2024-04-03 16:11:59 +02:00
badlogic
c99535ed85 Merge branch '4.1' into 4.2-beta 2023-09-21 18:33:05 +02:00
badlogic
70e169d5c4 [godot] Added C# example project with ports of the GDScript example scenes. 2023-09-21 18:32:41 +02:00
Harald Csaszar
1dad0098d5 Merge branch '4.1' into 4.2-beta 2023-09-11 21:52:34 +02:00
Mario Zechner
ec0ff67084 [haxe] Initial commit 2023-09-08 14:06:49 +02:00
Mario Zechner
d60d6e58f8 Merge branch '4.1' into 4.2-beta 2023-09-04 11:00:02 +02:00
Jordan Schidlowsky
96e25be436
Squashed commit of the following: (#2332)
commit 646078160b26979bc32093035602b7de12d9406b
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Mon Aug 7 15:34:37 2023 -0600

    revert SCsub

commit 6f388c3d4ce86944b3801fbd418bfc8a1dfe4e02
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Fri Aug 4 13:11:56 2023 -0600

    rename

commit 20eeeb5743a6687c189f61a91f14fcfcd179d0d8
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Fri Aug 4 13:11:11 2023 -0600

    fix

commit 6ef0c3d0698c851349f1cd5b44e06296cfc90011
Merge: 26c02da4a 94d043b56
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Fri Aug 4 13:09:54 2023 -0600

    Merge branch '4.1' into feature4.1/godot-performance-improvements

commit 26c02da4af1f7d518bbdc8c63a6c42f864b781b0
Merge: 0ce2ab656 002276351
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Thu Aug 3 15:57:49 2023 -0600

    Merge remote-tracking branch 'upstream/4.1' into feature4.1/godot-performance-improvements

commit 0ce2ab656364fde29063b8b8ccee36dd7f4583fd
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Thu Aug 3 12:11:51 2023 -0600

    Performance improvement using SNAME, caches for find_bone find_slot, temporary string buffer support.

commit 8082dfcef08cd5fab0c6247410c9177f0d6aa3bd
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Tue Jun 6 06:10:07 2023 -0600

    Support audio path in SpineEventData

commit bf864c7ff1e03bb8c8826b6766d09958d0ee36e0
Merge: da5b318ee 0a14457f3
Author: Jason Knight <jason@winterpixel.com>
Date:   Tue Nov 29 14:01:17 2022 -0600

    Merge branch 'upstream-4.1' into winterpixel-main

commit da5b318eea0881f2cc9656fcf09a355fe7b05392
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Fri Nov 25 14:02:09 2022 -0600

    fix incorrect ordering issue when applying custom materials to slot nodes

commit 000d22c5a8b160846c7742f181d9c7c6d816dd2a
Merge: 718643afc 8c3533835
Author: Brian Semrau <brian@winterpixel.com>
Date:   Thu Nov 24 16:02:30 2022 -0500

    Merge remote-tracking branch 'upstream/4.1' into winterpixel-main

commit 718643afc14b5f049961a4ec7b34ba9e8a3c6533
Merge: 2b743bd1d d8396435d
Author: Brian Semrau <brian@winterpixel.com>
Date:   Tue Oct 25 16:03:10 2022 -0400

    Merge remote-tracking branch 'upstream/4.1' into winterpixel-main

commit 2b743bd1dfa63f72169a36f2c43e43a2e2038f26
Author: Jordan Schidlowsky <jordanschidlowsky@gmail.com>
Date:   Thu Oct 13 12:37:04 2022 -0600

    Adding .o to ignore

commit 6ad70aaf162b7423c935b2baaff11c8bfbf2120b
Author: Brian Semrau <brian@winterpixel.com>
Date:   Wed Oct 12 13:59:32 2022 -0400

    Allow building by just adding to a modules folder
2023-09-04 10:58:43 +02:00
Mario Zechner
38aa1b0d61 Merge branch '4.1' into 4.2-beta
# Conflicts:
#	spine-ts/package-lock.json
#	spine-ts/package.json
#	spine-ts/spine-canvas/package.json
#	spine-ts/spine-core/package.json
#	spine-ts/spine-phaser/package.json
#	spine-ts/spine-pixi/package.json
#	spine-ts/spine-player/package.json
#	spine-ts/spine-threejs/package.json
#	spine-ts/spine-webgl/package.json
2023-08-06 03:10:04 +02:00
Mario Zechner
433182ef7b [ue] Update example project to UE 5.2 2023-08-03 13:18:02 +02:00
Harald Csaszar
ea16621fb1 Merge branch '4.1' into 4.2-beta 2023-07-24 20:46:11 +02:00
Mario Zechner
b405686823 [godot] More C# build work. 2023-07-21 14:42:45 +02:00
Mario Zechner
e525c77d18 [godot] Rework v4 build scripts to support optionally support C#. 2023-07-19 17:53:01 +02:00
Harald Csaszar
102f3e044b Merge branch '4.1' into 4.2-beta 2023-06-27 15:17:23 +02:00
eCode
4876dba946 feat: add support for pixijs 2023-06-03 13:05:21 -03:00
Mario Zechner
329f5b404f Merge branch '4.1' into 4.2-beta
# Conflicts:
#	spine-cocos2dx/spine-cocos2dx/src/spine/SkeletonRenderer.cpp
2023-02-17 14:28:05 +01:00
Mario Zechner
96c0842021 [cpp] Backport of some 4.2 changes to enable Flutter runtime in 4.1 2023-02-17 14:25:41 +01:00
Mario Zechner
5081519366 Merge branch '4.1' into 4.2-beta 2023-01-24 20:51:35 +01:00
badlogic
35c4294a9c [godot] Fixes for latest Godot 4.0, VS Code settings, tasks, and launch configs. 2023-01-24 16:05:10 +01:00
Mario Zechner
68a9096049 Merge branch '4.1' into 4.2-beta
# Conflicts:
#	.gitignore
#	spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp
#	spine-ts/package-lock.json
#	spine-ts/package.json
2022-12-27 11:48:02 +01:00
Mario Zechner
a3dc1fdb33 [ts] Phaser plugin scaffold.
# Conflicts:
#	.gitignore
2022-12-27 11:32:33 +01:00
Mario Zechner
8aa66061d9 Merge branch '4.1' into 4.2-beta
# Conflicts:
#	.gitignore
2022-11-29 09:48:51 +01:00
Mario Zechner
a7a2d844e1 [godot] Use our .clang-format. 2022-11-29 09:46:52 +01:00
Mario Zechner
b2842b5775 [flutter] Add spine-cpp copy to .gitignore 2022-08-15 10:18:40 +02:00
Mario Zechner
075ed81426 [flutter] Initial FFI plugin scafold + example. 2022-08-08 18:49:51 +02:00
Mario Zechner
68b59271bb [godot] Backport to 4.1 2022-07-18 10:27:42 +02:00
Mario Zechner
771c526915 Formatting pass. 2022-05-31 12:26:05 +02:00
badlogic
3f6bdb5b01 [cocos2dx] Update instructions for Windows example build. 2022-03-26 01:46:17 +01:00
Mario Zechner
06df4554a6 [cocos2dx] Fix Android example project, update README.md 2022-03-26 01:12:36 +01:00
Mario Zechner
22cc6cafb1 gitignore CMake output 2022-03-25 23:08:39 +01:00
Mario Zechner
a963642e47 [cocos2dx] Unify example to single project for both cocos2d-x v3 and v4 2022-03-25 21:57:30 +01:00
Mario Zechner
8761f44aa7 [cocos2d-objc] Fix example project for latest Xcode. 2022-03-25 14:34:32 +01:00
Mario Zechner
21ae33555a [libgdx] Add drag & drop support to skeleton viewer. Closes #2015 2022-01-23 22:02:55 +01:00
Mario Zechner
beea7c5b4d [monogame] Clean-up of .gitignore and runtimes.sh 2022-01-20 19:44:38 +01:00
Mario Zechner
5e57b86ce3 [monogame] Created new MonoGame solution and projects as replacement for spine-xna. See #1949. 2022-01-20 12:27:28 +01:00