mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
[libgdx] Don't use DIP_MIX across tracks.
`DIP_MIX` finds the next entry which does NOT key the timeline property and mixes out the "dip fix" (which is where a timeline is fully applied because a subsequent timeline keys the same property). This handles the case of A->B->C->D where A, B, and C key the same property but D doesn't. A uses the dip fix, then when D mixes in, `DIP_MIX` causes A to mix out, affecting B and C. If D is in another track, it is applied concurrently with A, B, and C so should not cause A to mix out.
This commit is contained in:
parent
114447bdeb
commit
61e54a5771
@ -610,13 +610,9 @@ public class AnimationState {
|
||||
propertyIDs.clear();
|
||||
Array<TrackEntry> mixingTo = this.mixingTo;
|
||||
|
||||
TrackEntry lastEntry = null;
|
||||
for (int i = 0, n = tracks.size; i < n; i++) {
|
||||
TrackEntry entry = tracks.get(i);
|
||||
if (entry != null) {
|
||||
entry.setTimelineData(lastEntry, mixingTo, propertyIDs);
|
||||
lastEntry = entry;
|
||||
}
|
||||
if (entry != null) entry.setTimelineData(null, mixingTo, propertyIDs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user