703 Commits

Author SHA1 Message Date
NathanSweet
d94ebeae7a [libgdx] One bone IK clean up. 2019-12-18 18:16:05 +01:00
NathanSweet
203a648ae9 [libgdx] Fixed one bone IK with disable inherit rotation/scale/reflection. 2019-12-18 18:04:21 +01:00
NathanSweet
068a554cc9 Avoid iterators for hot paths. 2019-12-06 22:22:18 +01:00
NathanSweet
65752c6d39 A little more minor skin clean up. 2019-12-06 22:22:18 +01:00
NathanSweet
26aaed331f Minor skin clean up. 2019-11-29 21:07:30 +01:00
NathanSweet
d1d108952b Avoid creating a new color object just to set a color. 2019-11-25 14:25:32 +01:00
NathanSweet
fdc73cae67 Javadoc improvements. 2019-11-25 14:19:36 +01:00
NathanSweet
952a34bc08 Restructured timelines to have a curve per value.
EsotericSoftware/spine-editor#118
2019-11-22 22:09:12 +01:00
badlogic
aebe8d3fb6 [libgdx] Switch Java version back to 1.7. 2019-11-22 14:39:30 +01:00
badlogic
7763a8839b [libgdx] Depending on libGDX snapshot builds for now. 2019-11-22 14:35:10 +01:00
NathanSweet
be8f622638 Added support for AnimationState to play backward. 2019-11-22 11:25:11 +01:00
NathanSweet
34ad58febe Use linear search to find keys.
Linear consistently outperforms binary using a wide sampling of real world data.
2019-11-16 18:08:33 +01:00
NathanSweet
faf22ce3cc Removed clamping.
It wasn't used in all code paths anyway.
2019-11-05 21:51:48 +01:00
NathanSweet
4762954446 Fixed bug with interpolation of first Bezier segment. 2019-11-05 19:02:19 +01:00
NathanSweet
c23eb470e6 Minor cleanup, javadoc. 2019-11-05 18:40:08 +01:00
NathanSweet
d72add1370 Timeline cleanup.
* More code moved into getCurveValue/Percent.
* Avoid doing work where possible, eg few comparisons, don't access `frames` when the value is not needed.
* Binary searches return lower index rather than greater and return the frame index without multiplying by the number of entries.
2019-10-31 23:17:03 +01:00
NathanSweet
72f6943970 Timeline binary search for stride 2. 2019-10-29 21:54:46 +01:00
NathanSweet
07bd8451f4 Timeline and JSON/binary improvements.
* Path constraint position and spacing timelines are now value timelines.
* Better code reuse in timelines and loaders.
* Loader changes for using time for Bezier segments.
* Binary knows the number of timelines ahead of time, for allocation.
2019-10-29 18:39:52 +01:00
NathanSweet
f165ffeb1c Use time for Bezier segments rather than percent.
Saves calculating the percent between frames for the Bezier path.
2019-10-29 18:39:52 +01:00
NathanSweet
40e0f7c88c Combined properties for rgb channels. 2019-10-26 17:18:01 +02:00
NathanSweet
93ca505864 Value space timelines, multiple property IDs per timeline, rotation not limited -180/180, clean up.
* Timeline is an abstract base class rather than an interface.
* Timelines have a list of String property IDs rather than a single int ID.
* CurveTimeline is separated into percent and value timelines and the API is cleaned up.
* CurveTimeline stores Bezier curves more efficiently. Linear/stepped keys used to take up memory they didn't use (18 floats/key).
* Binary format knows how many keys are Bezier up front for more efficient loading.
* RotateTimeline is no longer limited to -180/180.
* ScaleTimeline and ShearTimeline no longer extend TranslateTimeline.
* PathConstraintSpacingTimeline no longer extends PathConstraintPositionTimeline.
2019-10-26 15:00:58 +02:00
NathanSweet
0ee034b2db [libgdx] Store timeline ids inside set in Animation for O(1) lookup, added Animation#setTimelines.
See #1462.
2019-10-17 17:49:54 +02:00
NathanSweet
4812bac88d [libgdx] Store timeline ids inside set in Animation for O(1) lookup, added Animation#setTimelines.
See #1462.
2019-10-17 17:49:05 +02:00
NathanSweet
30a460d504 [libgdx] Allow listeners to be removed from event callbacks.
closes #464
2019-10-14 14:01:42 +02:00
badlogic
ecd1d67c25 [libgdx] Store timeline ids inside set in Animation for O(1) lookup. See #1462. 2019-09-26 15:04:57 +02:00
badlogic
679a012cc3 [libgdx] SkinEntry equals and hashCode do not take the attachment field into account. When setting a new SkinEntry for an existing slot + name combination, the old key with the old attachment stays in the keys table of the OrderedMap. Upon a call to getAttachments() that keys table is returned, which means the old attachment is returned instead of the newly set attachment. This commit fixes this buggy behaviour by storing SkinEntries as values, giving us access to the re-used key on which we can then update the attachment field. I'm sorry. Closes #1485. 2019-09-26 14:29:43 +02:00
badlogic
0ad6eb1b8d [libgdx] SkinEntry equals and hashCode do not take the attachment field into account. When setting a new SkinEntry for an existing slot + name combination, the old key with the old attachment stays in the keys table of the OrderedMap. Upon a call to getAttachments() that keys table is returned, which means the old attachment is returned instead of the newly set attachment. This commit fixes this buggy behaviour by storing SkinEntries as values, giving us access to the re-used key on which we can then update the attachment field. I'm sorry. Closes #1485. 2019-09-26 14:29:01 +02:00
badlogic
a7d68b7cd5 Merge branch '3.8' into 3.9-beta 2019-09-26 11:38:47 +02:00
badlogic
826771c2b6 [libgdx] Apply left over time additively to track time of delayed TrackEntry. See #1504. 2019-09-26 11:30:38 +02:00
badlogic
db166b1b7b Merge branch '3.8' into 3.9-beta 2019-09-11 16:20:00 +02:00
NathanSweet
f6dcf94115 [libgdx] Removed extra spaces in shader. 2019-08-29 19:18:59 +02:00
NathanSweet
2fa85fc1c6 [all] AnimationState, fixed an attachment timeline from changing the mix blend for other timelines.
closes #1461
2019-08-27 13:20:24 +02:00
NathanSweet
88ece3181e [libgdx] Made method package private for editor. 2019-08-26 20:29:05 +02:00
NathanSweet
2af6f4c925 [libgdx] Set default size (may fix VM bug in Chinese Android devices). 2019-08-25 17:32:01 +02:00
NathanSweet
c4fc616a9f Added a SkeletonData asset loader.
#266
#826
2019-08-20 13:32:12 +02:00
badlogic
e940f72d91 Merge branch '3.8' into 3.9-beta 2019-08-07 11:43:45 +02:00
NathanSweet
f60f026f09 [libgdx] Minor SkeletonBinary improvement. 2019-08-06 16:40:06 +02:00
NathanSweet
bb8cba13e1 [libgdx] SkeletonBinary should only set a default skin if it has attachments. 2019-08-06 16:38:29 +02:00
badlogic
ed44edfaed [libgdx] Updated pom version. 2019-08-05 15:17:03 +02:00
badlogic
3f1214923c [maven-release-plugin] prepare for next development iteration 2019-08-05 15:04:01 +02:00
badlogic
76a6f7302f [maven-release-plugin] prepare release spine-libgdx-3.8.55.1 2019-08-05 15:03:54 +02:00
badlogic
d5689f01b0 [libgdx] Snapshot version. 2019-08-05 15:03:25 +02:00
badlogic
581fcfb315 [libgdx] Updated to gdx 1.9.10. 2019-08-05 15:01:44 +02:00
NathanSweet
eac42ae50a [libgdx] Disallow creating a timeline with 0 frames. 2019-07-14 13:33:23 +02:00
NathanSweet
e915776665 [libgdx] Javadoc. 2019-07-05 19:21:46 +02:00
NathanSweet
64695a2c80 [libgdx] Apply loader scale to IK constraint softness. 2019-06-19 23:07:15 +02:00
NathanSweet
e3bc0822e1 [libgdx] IK constraint improvements.
* Fixed softness when the parent bone is scaled.
* Scale softness using the parent and child bone `scaleX`.
* Fixed NaNs when the child bone is at `0,0` parent coordinates (or the parent is scaled to zero).
2019-06-19 02:26:03 +02:00
NathanSweet
15b4c54888 [libgdx] Added IK softness. 2019-06-17 19:06:22 +02:00
NathanSweet
ccc5b2f38b [libgdx] Fixed root bone transform for skeleton scale to use world axes.
#1373
2019-06-13 14:57:29 +02:00
NathanSweet
ad6ed0911c [libgdx] Wrap System.arraycopy for exceptions with more context. 2019-06-11 11:17:34 +02:00