mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
Merge remote-tracking branch 'EsotericSoftware/3.6' into 3.6
This commit is contained in:
commit
2bf0d3fdfa
Binary file not shown.
@ -468,9 +468,12 @@ package spine.animation {
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration : Number = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + (int)(last.trackTime / duration)) - data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + (int)(last.trackTime / duration));
|
||||
else
|
||||
delay += duration;
|
||||
} else
|
||||
delay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -720,9 +720,14 @@ spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIn
|
||||
last->next = entry;
|
||||
if (delay <= 0) {
|
||||
float duration = last->animationEnd - last->animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + (int)(last->trackTime / duration)) - spAnimationStateData_getMix(self->data, last->animation, animation);
|
||||
else
|
||||
if (duration != 0) {
|
||||
if (last->loop) {
|
||||
delay += duration * (1 + (int) (last->trackTime / duration));
|
||||
} else {
|
||||
delay += duration;
|
||||
}
|
||||
delay -= spAnimationStateData_getMix(self->data, last->animation, animation);
|
||||
} else
|
||||
delay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -269,6 +269,11 @@ void SkeletonTwoColorBatch::batch (TwoColorTrianglesCommand* command) {
|
||||
flush(_lastCommand);
|
||||
}
|
||||
|
||||
uint32_t materialID = command->getMaterialID();
|
||||
if (_lastCommand && _lastCommand->getMaterialID() != materialID) {
|
||||
flush(_lastCommand);
|
||||
}
|
||||
|
||||
memcpy(_vertexBuffer + _numVerticesBuffer, command->getTriangles().verts, sizeof(V3F_C4B_C4B_T2F) * command->getTriangles().vertCount);
|
||||
const Mat4& modelView = command->getModelView();
|
||||
for (int i = _numVerticesBuffer; i < _numVerticesBuffer + command->getTriangles().vertCount; i++) {
|
||||
@ -284,10 +289,8 @@ void SkeletonTwoColorBatch::batch (TwoColorTrianglesCommand* command) {
|
||||
_numVerticesBuffer += command->getTriangles().vertCount;
|
||||
_numIndicesBuffer += command->getTriangles().indexCount;
|
||||
|
||||
uint32_t materialID = command->getMaterialID();
|
||||
|
||||
if ((_lastCommand && _lastCommand->getMaterialID() != materialID) || command->isForceFlush()) {
|
||||
flush(_lastCommand);
|
||||
if (command->isForceFlush()) {
|
||||
flush(command);
|
||||
}
|
||||
_lastCommand = command;
|
||||
}
|
||||
|
||||
@ -513,9 +513,14 @@ namespace Spine {
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
float duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + (int)(last.trackTime / duration)) - data.GetMix(last.animation, animation);
|
||||
else
|
||||
if (duration != 0) {
|
||||
if (last.loop) {
|
||||
delay += duration * (1 + (int)(last.trackTime / duration));
|
||||
} else {
|
||||
delay += duration;
|
||||
}
|
||||
delay -= data.GetMix(last.animation, animation);
|
||||
} else
|
||||
delay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -528,9 +528,13 @@ public class AnimationState {
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
float duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + (int)(last.trackTime / duration)) - data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + (int)(last.trackTime / duration));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= data.getMix(last.animation, animation);
|
||||
} else
|
||||
delay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -720,7 +720,12 @@ function AnimationState:addAnimation (trackIndex, animation, loop, delay)
|
||||
if delay <= 0 then
|
||||
local duration = last.animationEnd - last.animationStart
|
||||
if duration ~= 0 then
|
||||
delay = delay + duration * (1 + math_floor(last.trackTime / duration)) - data:getMix(last.animation, animation)
|
||||
if last.loop then
|
||||
delay = delay + duration * (1 + math_floor(last.trackTime / duration))
|
||||
else
|
||||
delay = delay + duration
|
||||
end
|
||||
delay = delay - data:getMix(last.animation, animation)
|
||||
else
|
||||
delay = 0
|
||||
end
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1521,8 +1521,13 @@ var spine;
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
var duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
}
|
||||
else
|
||||
delay = 0;
|
||||
}
|
||||
@ -1862,11 +1867,11 @@ var spine;
|
||||
throw new Error("from cannot be null.");
|
||||
if (to == null)
|
||||
throw new Error("to cannot be null.");
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
};
|
||||
AnimationStateData.prototype.getMix = function (from, to) {
|
||||
var key = from.name + to.name;
|
||||
var key = from.name + "." + to.name;
|
||||
var value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -453,9 +453,13 @@ module spine {
|
||||
last.next = entry;
|
||||
if (delay <= 0) {
|
||||
let duration = last.animationEnd - last.animationStart;
|
||||
if (duration != 0)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation);
|
||||
if (duration != 0) {
|
||||
if (last.loop)
|
||||
delay += duration * (1 + ((last.trackTime / duration) | 0));
|
||||
else
|
||||
delay += duration;
|
||||
delay -= this.data.getMix(last.animation, animation);
|
||||
} else
|
||||
delay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,12 +50,12 @@ module spine {
|
||||
setMixWith (from: Animation, to: Animation, duration: number) {
|
||||
if (from == null) throw new Error("from cannot be null.");
|
||||
if (to == null) throw new Error("to cannot be null.");
|
||||
let key = from.name + to.name;
|
||||
let key = from.name + "." + to.name;
|
||||
this.animationToMixTime[key] = duration;
|
||||
}
|
||||
|
||||
getMix (from: Animation, to: Animation) {
|
||||
let key = from.name + to.name;
|
||||
let key = from.name + "." + to.name;
|
||||
let value = this.animationToMixTime[key];
|
||||
return value === undefined ? this.defaultMix : value;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user