void BaseAnimation::run(Output *output, uint32_t duration) { stop(); if (!output || duration == 0) { updateAnim(1.); done(); return; } m_duration = duration; m_animation.ani.frame_counter = 0; wl_list_insert(&output->m_output->animation_list, &m_animation.ani.link); weston_output_schedule_repaint(output->m_output); updateAnim(0.); }
void Animation::run(Output *output, uint32_t duration, Animation::Flags flags) { stop(); if (!output || duration == 0) { emit update(m_target); if (flags & Flags::SendDone) { emit done(); } return; } m_duration = duration; m_runFlags = flags; m_animation.ani.frame_counter = 0; wl_list_insert(&output->m_output->animation_list, &m_animation.ani.link); weston_output_schedule_repaint(output->m_output); emit update(m_start); }