175QQuickSprite::QQuickSprite(QObject *parent)
176 : QQuickStochasticState(parent)
177 , m_generatedCount(0)
187 , m_frameRate(unsetDuration)
188 , m_frameRateVariation(0)
189 , m_frameDuration(unsetDuration)
190 , m_frameDurationVariation(0)
192 , m_devicePixelRatio(1.0)
201int QQuickSprite::variedDuration()
const
206 if (m_frameRate != unsetDuration) {
207 qreal fpms = (m_frameRate
208 + (m_frameRateVariation * QRandomGenerator::global()->generateDouble() * 2)
209 - m_frameRateVariation) / 1000.0;
210 return qMax(qreal(0.0) , m_frames / fpms);
211 }
else if (m_frameDuration != unsetDuration) {
212 int mspf = m_frameDuration
213 + (m_frameDurationVariation * QRandomGenerator::global()->generateDouble() * 2)
214 - m_frameDurationVariation;
215 return qMax(0, m_frames * mspf);
216 }
else if (duration() >= 0) {
217 qWarning() <<
"Sprite::duration is changing meaning to the full animation duration.";
218 qWarning() <<
"Use Sprite::frameDuration for the old meaning, of per frame duration.";
219 qWarning() <<
"As an interim measure, duration/durationVariation means the same as frameDuration/frameDurationVariation, and you'll get this warning spewed out everywhere to motivate you.";
221 return QQuickStochasticState::variedDuration() * m_frames;
240 QQuickImageBase::resolve2xLocalFile(resolvedUrl, m_devicePixelRatio, &loadUrl,