mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-16 10:20:50 +00:00
Timeline: fix problem setting the duration of a frame range
This commit is contained in:
parent
b31f568488
commit
076be1f22f
@ -139,7 +139,7 @@ void FramePropertiesCommand::onExecute(Context* context)
|
||||
ContextWriter writer(reader);
|
||||
UndoTransaction undoTransaction(writer.context(), "Frame Duration");
|
||||
if (firstFrame != lastFrame)
|
||||
writer.document()->getApi().setConstantFrameRate(writer.sprite(), firstFrame, lastFrame, num);
|
||||
writer.document()->getApi().setFrameRangeDuration(writer.sprite(), firstFrame, lastFrame, num);
|
||||
else
|
||||
writer.document()->getApi().setFrameDuration(writer.sprite(), firstFrame, num);
|
||||
undoTransaction.commit();
|
||||
|
@ -381,7 +381,7 @@ void DocumentApi::setFrameDuration(Sprite* sprite, FrameNumber frame, int msecs)
|
||||
m_document->notifyObservers<DocumentEvent&>(&DocumentObserver::onFrameDurationChanged, ev);
|
||||
}
|
||||
|
||||
void DocumentApi::setConstantFrameRate(Sprite* sprite, FrameNumber from, FrameNumber to, int msecs)
|
||||
void DocumentApi::setFrameRangeDuration(Sprite* sprite, FrameNumber from, FrameNumber to, int msecs)
|
||||
{
|
||||
ASSERT(from >= FrameNumber(0));
|
||||
ASSERT(from < to);
|
||||
@ -395,7 +395,7 @@ void DocumentApi::setConstantFrameRate(Sprite* sprite, FrameNumber from, FrameNu
|
||||
}
|
||||
|
||||
// Do the action.
|
||||
sprite->setDurationForAllFrames(msecs);
|
||||
sprite->setFrameRangeDuration(from, to, msecs);
|
||||
}
|
||||
|
||||
void DocumentApi::moveFrameBefore(Sprite* sprite, FrameNumber frame, FrameNumber beforeFrame)
|
||||
|
@ -69,7 +69,7 @@ namespace app {
|
||||
void removeFrame(Sprite* sprite, FrameNumber frame);
|
||||
void setTotalFrames(Sprite* sprite, FrameNumber frames);
|
||||
void setFrameDuration(Sprite* sprite, FrameNumber frame, int msecs);
|
||||
void setConstantFrameRate(Sprite* sprite, FrameNumber from, FrameNumber to, int msecs);
|
||||
void setFrameRangeDuration(Sprite* sprite, FrameNumber from, FrameNumber to, int msecs);
|
||||
void moveFrameBefore(Sprite* sprite, FrameNumber frame, FrameNumber beforeFrame);
|
||||
|
||||
// Cels API
|
||||
|
@ -327,6 +327,13 @@ void Sprite::setFrameDuration(FrameNumber frame, int msecs)
|
||||
m_frlens[frame] = MID(1, msecs, 65535);
|
||||
}
|
||||
|
||||
void Sprite::setFrameRangeDuration(FrameNumber from, FrameNumber to, int msecs)
|
||||
{
|
||||
std::fill(
|
||||
m_frlens.begin()+(size_t)from,
|
||||
m_frlens.begin()+(size_t)to+1, MID(1, msecs, 65535));
|
||||
}
|
||||
|
||||
void Sprite::setDurationForAllFrames(int msecs)
|
||||
{
|
||||
std::fill(m_frlens.begin(), m_frlens.end(), MID(1, msecs, 65535));
|
||||
|
@ -111,8 +111,7 @@ namespace raster {
|
||||
|
||||
int getFrameDuration(FrameNumber frame) const;
|
||||
void setFrameDuration(FrameNumber frame, int msecs);
|
||||
|
||||
// Sets a constant frame-rate.
|
||||
void setFrameRangeDuration(FrameNumber from, FrameNumber to, int msecs);
|
||||
void setDurationForAllFrames(int msecs);
|
||||
|
||||
////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user