[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:
NathanSweet 2017-06-24 03:06:50 +02:00
parent 114447bdeb
commit 61e54a5771

View File

@ -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);
}
}