Mario Zechner
b37ee6fb6f
[cpp] Remove no-cpprt.cpp and corresponding build targets
2025-09-10 12:34:51 +02:00
Mario Zechner
51410a526e
[c] Direct setListener on track entry and animation state
2025-08-29 15:10:56 +02:00
Mario Zechner
a2c752d855
[cpp][c] Fix warnings on Clang
2025-07-31 00:50:41 +02:00
Mario Zechner
f9fefee0c8
[cpp] Docker build for GCC testing, minor GCC fixes
2025-07-30 12:10:02 +02:00
Mario Zechner
f6fbbabd6b
[cpp] pEvents -> events
2025-07-30 09:41:42 +02:00
Mario Zechner
65f01fefb9
[cpp] Skeleton::getBounds() without scratch buffers
2025-07-30 00:42:27 +02:00
Mario Zechner
fe5e25c3a0
[cpp] Added TrackEntry::getAnimationState(), wired up when TrackEntry is obtained from pool in AnimatinState::newTrackEntry
2025-07-29 23:15:38 +02:00
Mario Zechner
3e67c82a22
[cpp] Fix UB in attachment timeline binary parsing
2025-07-26 02:17:18 +02:00
Mario Zechner
022f7b6113
[cpp] And back to new bendDirection IK behaviour
2025-07-26 01:31:46 +02:00
Mario Zechner
9b778bc508
[cpp] Fix SkeletonBinary::readLong() UB, revert bendDirection fix again ...
2025-07-26 01:18:47 +02:00
Mario Zechner
17e843bc95
[cpp] Reverse IK bend positive logic.
...
This matches SkeletonJson for 1-bone IK. Requires 4.3.39-beta+.
2025-07-26 00:19:55 +02:00
Mario Zechner
a0bcb01a2a
[cpp] Fix inconsistens getters/setters wrt nullability
2025-07-25 22:20:02 +02:00
Mario Zechner
854b6f9a2a
[cpp] Constructor nullability.
2025-07-25 22:00:52 +02:00
Mario Zechner
861eac1c1b
[c] References for non-nullable arguments and return types, pointers for nullable args and return types
2025-07-25 20:21:39 +02:00
Mario Zechner
31e0566b7d
[cpp] Remove CurveTimeline2, replace with BoneTimeline2.
2025-07-24 22:25:23 +02:00
Mario Zechner
a018a3d7e9
[cpp] Fix _boneIndex initialization in constructors
2025-07-24 14:40:36 +02:00
Mario Zechner
af05f0681d
[cpp] Refactored type hierarchy to be single inheritance, multiple interfaces
2025-07-24 14:16:19 +02:00
Mario Zechner
c7af1a3438
[cpp] Fix C++ clipping triangle skipping and control flow bugs
...
- Remove erroneous i+=3 increment in SkeletonClipping.cpp that caused triangle skipping
- Add missing continue statement to match Java reference implementation behavior
- Portal animation now renders correctly with proper triangular clipping
2025-07-22 02:09:01 +02:00
Mario Zechner
ed5bb5b566
[cpp] Fix RTTI of BonePose
2025-07-22 02:09:01 +02:00
Mario Zechner
fb821ec443
Formatting
2025-07-21 03:37:09 +02:00
Mario Zechner
7fdb5906e4
[cpp] Fix hash construction in SkeletonBinary
2025-07-21 02:38:47 +02:00
Mario Zechner
45c60efd6a
[cpp] Fix rotated region handling, EventData::volume default value.
2025-07-21 02:35:36 +02:00
Mario Zechner
d0d77b68ae
[cpp] Fix BoundingBoxAttachment default color
2025-07-21 01:41:54 +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
1a10d185a3
[cpp] Smoke tests
2025-07-20 22:42:16 +02:00
Mario Zechner
2036aa3e76
[cpp] Fix double free crash in SkeletonBinary::readSkeletonDataFile, add terminal logging utilities and style guide, add nostdcpp
2025-07-20 20:19:07 +02:00
Mario Zechner
aaca02ad81
[cpp] nostdlib build to be used with WASM and other environments that do not want stdlibc++ linked in.
2025-07-20 14:20:40 +02:00
Mario Zechner
b544dd99ed
[formatters] C/C++ formatting
2025-07-15 22:56:12 +02:00
Mario Zechner
acbcfeb44d
[cpp] Still compute RegionAttachment offsets when the region is null, see #2887
...
- Includes a massive refactor of the TextureRegion/AtlasRegion hierarchy to be in line with Java implementation
- Exact line by line port of RegionAttachment#updateRegion and MeshAttachment#updateRegion using new region implementations
2025-07-15 14:22:19 +02:00
Mario Zechner
557465ed01
[cpp] Rename RegionAttachment::_vertexOffset -> ::_offset
2025-07-15 11:25:05 +02:00
Mario Zechner
d3c0e7ad66
[cpp] Fixed bone disable inherit scale/reflection, see #2888
2025-07-15 11:09:49 +02:00
Mario Zechner
aac98324f2
[cpp][c] Clean up AtlasRegion, TextureRegion to use _ field prefixes and getters/setters instead of public fields
2025-07-14 21:13:56 +02:00
Mario Zechner
eaff42c840
[cpp] Fix primitive type array reading in SkeletonJson/SkeletonBinary
2025-07-13 04:43:05 +02:00
Mario Zechner
102b030db3
[tests] More improvements to serializer generator.
2025-07-13 02:52:50 +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
cc4f11fded
[cpp] Simplify directory structure, add DebugPrinter program
...
- spine-cpp/spine-cpp was moved into spine-cpp directory, so spine-cpp/spine-cpp/src -> spine-cpp/src, spine-cpp/spine-cpp/include -> spine-cpp/include
- Added scaffold for DebugPrinter to be used by runtime comparison tests
- Added build.sh
2025-07-11 11:00:44 +02:00
NathanSweet
5aa58c5a9b
spine-cpp is no longer supported. Use spine-c.
2013-04-02 02:48:12 +02:00
NathanSweet
42d072ae8d
Simplified Timeline interface.
2013-03-25 12:49:02 +01:00
NathanSweet
75fc36eab6
Simplified all loading methods to take path, stream, or pointers.
2013-03-25 12:33:21 +01:00
NathanSweet
3aab744395
Utility methods to read from file and other minor improvements.
2013-03-22 16:18:03 +01:00
NathanSweet
6899b5249c
Added AnimationState.
...
Fixed bug with keeping attachments visisble when setting new skin.
Clean up. Always more clean up can be done, freaking C++...
2013-03-22 14:22:35 +01:00
NathanSweet
6e9bcfd1d5
License headers for source files.
2013-03-20 14:58:59 +01:00
NathanSweet
d3949288f8
Separated SFML from spine-cpp.
2013-03-20 14:08:54 +01:00
NathanSweet
43018798ab
Look in skin before default skin.
2013-03-15 02:25:15 +01:00
NathanSweet
a1ad55f8a1
Documented memory ownership.
...
Clean up and minor improvements.
2013-03-15 01:41:24 +01:00
Victor Savu
b0f8468ddc
initialize variable
2013-03-13 00:40:18 +02:00
Victor Savu
67aa830511
fix use after free
...
the string created by value.substr(index * 2, 2) is deleted after c_str()
but before strtoul executes. The solution is to use a temporary string
to store the value.
2013-03-13 00:40:18 +02:00
Victor Savu
f77459983f
use the states provided
...
This allows animations to be scaled/moved easily
2013-03-13 00:40:18 +02:00
NathanSweet
695db31d71
libgdx runtime, attachment loader instead of resolver.
...
Other minor fixes.
2013-03-12 23:20:38 +01:00
Sean Chapel
4e61263551
Fixes issue with visual studio not defining M_PI in math.h. Fixed all compiler warnings.
2013-02-26 11:03:11 -08:00