mirror of https://github.com/aseprite/aseprite.git
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
3935b10467
|
|
@ -190,7 +190,20 @@ void MiniEditorWindow::onClose(ui::CloseEvent& ev)
|
||||||
|
|
||||||
void MiniEditorWindow::onPlayClicked()
|
void MiniEditorWindow::onPlayClicked()
|
||||||
{
|
{
|
||||||
resetTimer();
|
if (m_playButton->isPlaying()) {
|
||||||
|
Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
|
||||||
|
if (miniEditor && miniEditor->getDocument() != NULL)
|
||||||
|
m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
|
||||||
|
else
|
||||||
|
m_nextFrameTime = -1;
|
||||||
|
|
||||||
|
m_curFrameTick = ji_clock;
|
||||||
|
|
||||||
|
m_playTimer.start();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_playTimer.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiniEditorWindow::updateUsingEditor(Editor* editor)
|
void MiniEditorWindow::updateUsingEditor(Editor* editor)
|
||||||
|
|
@ -234,22 +247,6 @@ void MiniEditorWindow::hideWindow()
|
||||||
closeWindow(NULL);
|
closeWindow(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiniEditorWindow::resetTimer()
|
|
||||||
{
|
|
||||||
if (m_playButton->isPlaying()) {
|
|
||||||
m_playTimer.start();
|
|
||||||
|
|
||||||
Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
|
|
||||||
if (miniEditor && miniEditor->getDocument() != NULL)
|
|
||||||
m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
|
|
||||||
else
|
|
||||||
m_nextFrameTime = -1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
m_playTimer.stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MiniEditorWindow::onPlaybackTick()
|
void MiniEditorWindow::onPlaybackTick()
|
||||||
{
|
{
|
||||||
Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
|
Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
|
||||||
|
|
@ -257,15 +254,18 @@ void MiniEditorWindow::onPlaybackTick()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (m_nextFrameTime >= 0) {
|
if (m_nextFrameTime >= 0) {
|
||||||
m_nextFrameTime -= 10; // onPlaybackTick()
|
m_nextFrameTime -= (ji_clock - m_curFrameTick);
|
||||||
if (m_nextFrameTime <= 0) {
|
|
||||||
|
while (m_nextFrameTime <= 0) {
|
||||||
FrameNumber frame = miniEditor->getFrame().next();
|
FrameNumber frame = miniEditor->getFrame().next();
|
||||||
if (frame > miniEditor->getSprite()->getLastFrame())
|
if (frame > miniEditor->getSprite()->getLastFrame())
|
||||||
frame = FrameNumber(0);
|
frame = FrameNumber(0);
|
||||||
miniEditor->setFrame(frame);
|
miniEditor->setFrame(frame);
|
||||||
|
|
||||||
m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
|
m_nextFrameTime += miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_curFrameTick = ji_clock;
|
||||||
}
|
}
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ namespace app {
|
||||||
void onPlayClicked();
|
void onPlayClicked();
|
||||||
void onPlaybackTick();
|
void onPlaybackTick();
|
||||||
void hideWindow();
|
void hideWindow();
|
||||||
void resetTimer();
|
|
||||||
|
|
||||||
bool m_isEnabled;
|
bool m_isEnabled;
|
||||||
DocumentView* m_docView;
|
DocumentView* m_docView;
|
||||||
|
|
@ -55,6 +54,7 @@ namespace app {
|
||||||
// Number of milliseconds to go to the next frame if m_playTimer
|
// Number of milliseconds to go to the next frame if m_playTimer
|
||||||
// is activated.
|
// is activated.
|
||||||
int m_nextFrameTime;
|
int m_nextFrameTime;
|
||||||
|
int m_curFrameTick;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace app
|
} // namespace app
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue