void Timer::startTimer() { if (m_delayMillis > 0) { m_currentTimeMillis = UptimeInfo::tMillis(); startInterval(); } }
void Timer::startTimer(unsigned long timeMillis) { m_delayMillis = timeMillis; if (m_delayMillis > 0) { m_currentTimeMillis = UptimeInfo::tMillis(); startInterval(); } else { cancelTimer(); } }
void Timer::internalTick() { m_currentTimeMillis = UptimeInfo::tMillis(); // check if interval is over, as long as (m_delayMillis > 0) if ((m_delayMillis > 0) && (m_triggerTimeMillis < m_currentTimeMillis) && (m_currentTimeMillis < m_triggerTimeMillisUpperLimit)) { if (m_isRecurring) { startInterval(); } else { m_delayMillis = 0; } m_isExpiredFlag = true; if (0 != m_adapter) { m_adapter->timeExpired(); } } }
void KisScanlineFill::runImpl(T &pixelPolicy) { KIS_ASSERT_RECOVER_RETURN(m_d->forwardStack.isEmpty()); KisFillInterval startInterval(m_d->startPoint.x(), m_d->startPoint.x(), m_d->startPoint.y()); m_d->forwardStack.push(startInterval); /** * In the end of the first pass we should add an interval * containing the starting pixel, but directed into the opposite * direction. We cannot do it in the very beginning because the * intervals are offset by 1 pixel during every swap operation. */ bool firstPass = true; while (!m_d->forwardStack.isEmpty()) { while (!m_d->forwardStack.isEmpty()) { KisFillInterval interval = m_d->forwardStack.pop(); if (interval.row > m_d->boundingRect.bottom() || interval.row < m_d->boundingRect.top()) { continue; } processLine(interval, m_d->rowIncrement, pixelPolicy); } m_d->swapDirection(); if (firstPass) { startInterval.row--; m_d->forwardStack.push(startInterval); firstPass = false; } } }