149 Commits

Author SHA1 Message Date
Nathan Sweet
3fa62b2550 [libgdx] Prefer JDK StringBuilder. 2025-07-31 17:25:35 -04:00
Mario Zechner
235aa7b928 [tests] No explicit skeleton.setupPose() call. 2025-07-22 02:09:01 +02:00
Mario Zechner
6f81d43faa [cpp] Enhance circular reference display with deterministic object identifiers
Replace "<circular>" with meaningful reference strings using a hybrid approach:
- Objects with names: <EventData-walk>, <BoneData-head>, <Animation-run>
- Objects without names: <TrackEntry-1>, <Bone-2>, <SliderTimeline-3>

Each serialized object now includes "refString" as its first field, enabling
easy navigation from circular references to full object definitions.
2025-07-22 02:09:01 +02:00
Mario Zechner
fb821ec443 Formatting 2025-07-21 03:37:09 +02:00
Mario Zechner
ab469cbefd [tests] headless-test-runner.ts with language specific fixes (e.g. icon: null (Java) > icon: "" (C++), C++ JSON will have null as well) 2025-07-21 00:58:43 +02:00
Mario Zechner
a7a5531899 [libgdx] Eclipse formatter instead of Spotless/Gradle 2025-07-16 02:19:09 +02:00
Mario Zechner
0c74907da2 [tests] Improve snapshot testing infrastructure
- test.sh which given a language builds the headless test executable and runs the test with the given inputs
- generate-serializers.sh to (re-)generate all language specific serializers
- Improved README.md
- Removed headless-test-runner.ts, now fully expressed in more concise test.sh
2025-07-15 15:13:45 +02:00
Mario Zechner
ed58364b51 [libgdx] Clean-up headless test 2025-07-15 10:35:51 +02:00
Mario Zechner
bd5b032619 [tests] ir-based serializer generator for C++ 2025-07-13 04:23:57 +02:00
Mario Zechner
4bf777a658 [tests] serializer ir generator, ir-based java serializer generator 2025-07-13 03:31:20 +02:00
Mario Zechner
429ed9dd3b [tests] Complete C++ SkeletonSerializer auto-generation from Java
- Implement comprehensive C++ serializer generator (tests/generate-cpp-serializer.ts)
- Direct transformation of Java SkeletonSerializer to C++ header-only implementation
- Handle all C++-specific API differences:
  * Field access patterns (obj.field → obj->field, private fields → obj->_field)
  * Null check removal for reference-returning methods (getBones, getEdges)
  * Nested array null check elimination (getVertices, getDrawOrders)
  * Enum serialization via switch statements replacing .name() calls
  * Custom function replacement system for C++-specific implementations
- Add specialized C++ implementations:
  * writeColor: handle public Color fields (r,g,b,a without underscore)
  * writeSkin: iterate AttachmentMap::Entries and call writeSkinEntry
  * writeSkinEntry: handle AttachmentMap::Entry instead of Java SkinEntry
- Auto-generate both pointer and reference versions of all write methods
- Create JsonWriter.h as header-only port of Java JsonWriter
- Update HeadlessTest.cpp to use generated SkeletonSerializer
- Add comprehensive type analysis and enum mapping from analysis-result.json
- Implement exclusion system for filtering unwanted types/methods
- Fix Java generator nested array null checks that were incorrectly hardcoded

Generated C++ serializer produces identical JSON output to Java reference implementation.
2025-07-13 02:06:44 +02:00
Mario Zechner
3183c0b383 [tests] Auto-generation of Java SkeletonSerializer 2025-07-12 02:24:14 +02:00
Mario Zechner
73a17e88c9 [tests] DebugPrinter -> HeadlessTest 2025-07-11 14:16:24 +02:00
Mario Zechner
d973417106 [tests] Fix locale in all debug printers, add tests/README.md, build if sources changed in compare-with-reference-impl.ts 2025-07-11 13:17:15 +02:00
Mario Zechner
4e3d2be023 [c][cpp][libgdx] Launch configs for debug-printer 2025-07-11 12:33:02 +02:00
Mario Zechner
9ee4d6c40e [libgdx] Add DebugPrinter program, add runDebugPrinter task to build.gradle 2025-07-11 11:03:04 +02:00
Nathan Sweet
43a3176db2 [libgdx] Reorder static public qualifiers. 2025-06-01 09:47:22 -04:00
Nathan Sweet
4db43da678 [libgdx] Pose the skeleton for FboTest. 2025-05-31 12:43:48 -04:00
Nathan Sweet
1f92218c23 [libgdx] Give all arrays types, direct array access, removed casts. 2025-04-18 12:44:11 -04:00
Nathan Sweet
fff1606b6d [libgdx] Added Posed and other base classes. Renamed BoneLocal/Pose. Removed skeleton fields, prefer passing. 2025-04-16 23:14:08 -04:00
Nathan Sweet
cab5944663 [libgdx] SlotPose and other refactoring. 2025-04-15 12:09:40 -04:00
Nathan Sweet
71ef2d5f98 [libgdx] Separate pose and applied for bones, slots, and constraints, sliders WIP. 2025-04-12 22:09:24 -04:00
Nathan Sweet
f08d58dc98 License header update. 2025-04-05 13:42:13 -04:00
Luke Ingram
e9cce58a1f [libgdx] Updates the Spine Runtimes License Agreement date, updates links to documentation. 2024-12-09 19:02:05 -04:00
Nathan Sweet
4214e8a8e6 [libgdx] Added an example for SkeletonActor. 2024-05-17 10:23:36 -04:00
Mario Zechner
26d9dee67c [libgdx] Fix example, prepare for Maven release 2024-04-16 15:39:17 +02:00
Mario Zechner
6bcef32208 [libgdx] Added physics examples 2024-03-19 12:04:52 +01:00
Nathan Sweet
ec1d6028c0 [libgdx] Added skeleton.update(delta) to examples, even when physics is not used.
Missed one.
2024-01-18 10:32:37 -04:00
Nathan Sweet
55550c3490 [libgdx] Added skeleton.update(delta) to examples, even when physics is not used. 2024-01-18 09:57:20 -04:00
Nathan Sweet
92986788c1 [libgdx] Changed SimpleTest1 back to JSON. 2024-01-10 16:42:12 -04:00
Nathan Sweet
9cd5b3b044 [libgdx] Fixed shear causing physics to explode. 2023-12-05 14:11:42 -04:00
Mario Zechner
24edbcbf6c [libgdx] Added physics dragging example 2023-12-05 17:38:49 +01:00
Mario Zechner
cceaf31107 [libgdx] Add second physics test to tests 2023-12-05 15:12:43 +01:00
Mario Zechner
02773518b1 [ts] Fix physics! 2023-12-05 15:10:38 +01:00
Nathan Sweet
4116af02fa [libgdx] Added a Physics enum to updateWorldTransform and Updateable#update to control how physics and other non-deterministic updates are applied. 2023-09-28 16:35:25 -04:00
Mario Zechner
4047f1ba07 Updated license headers. 2023-07-31 13:29:16 +02:00
Mario Zechner
c056db02ee [libgdx] Remove VertexEffect, see #2076 2022-05-30 15:02:22 +02:00
Nathan Sweet
6d990fd1d1 [libgdx] Added PngExportTest. 2022-05-01 12:10:49 -04:00
Nathan Sweet
c47aa8eade [libgdx] Javadocs and clean up for tests. 2022-05-01 12:08:31 -04:00
Nathan Sweet
58ac2fa67e [libgdx] Fixed frame-by-frame test, added PNG export to spineboy example. 2022-05-01 11:29:29 -04:00
Mario Zechner
90537ca2d9 [libgdx] Gradleify all projects, switch to LWJGL3
# Conflicts:
#	spine-libgdx/build.gradle
2022-01-23 21:09:52 +01:00
Nathan Sweet
6e938b32ea Rewrote sequence attachment as a sequence property on region and mesh attachments. 2021-10-01 22:53:08 -10:00
Nathan Sweet
457aa3a894 Initial comment for sequence attachments (frame-by-frame).
EsotericSoftware/spine-editor#9
2021-09-24 21:00:26 -10:00
Nathan Sweet
96a998b82d Spine Runtimes License Agreement update (September 24, 2021). 2021-09-24 18:18:19 -10:00
Nathan Sweet
db92cb3667 Update the asset manager for only 16ms, not until the next asset is loaded.
https://github.com/libgdx/libgdx/wiki/Managing-your-assets#optimize-loading
2021-09-20 23:28:58 -10:00
badlogic
c2b1ecb195 [libgdx] Fix line endings, CRLF -> LF 2021-06-30 16:25:32 +02:00
Nathan Sweet
4f73fbbb39 [libgdx] Fixed applying a constraint reverting changes from other constraints.
Previously: When a bone in the update cache is updated, the local transform is used. This causes any applied transform to be lost, losing the pose from any previously applied constraints.

After this commit: Before processing the update cache, first all bones applied transform is set to the local transform. Next, when a bone in the update cache is updated, the applied transform is used. This keeps the pose from any previously applied constraints. Additionally, instead of using the `appliedValid` flag, the applied transform is always updated after making changes to the world transform.

Forum discussion:
http://esotericsoftware.com/forum/Editor-Parent-constraint-order-breaks-child-constraints-15774?p=69494#p69494
2021-05-25 13:12:55 -04:00
badlogic
f94113e4db Merge branch '3.8' into 4.0-beta 2021-05-07 12:02:36 +02:00
badlogic
e59d6be170 [libgdx] Closes #1886, use PolygonSpriteBatch in simple tests. 2021-05-07 12:01:15 +02:00
Nathan Sweet
af336cc23a [libgdx] Don't set font color every frame. 2021-03-15 12:37:41 +01:00