11#include <QElapsedTimer>
13#include <boost/optional.hpp>
38 m_d->strokeTimeSource.start();
52 return m_d->isEnabled;
57 if (!
m_d->isEnabled)
return;
59 if (!
m_d->lastSamplePos) {
60 m_d->lastSamplePos = pt;
63 *
m_d->lastSamplePos = pt;
69 if (!
m_d->isEnabled)
return;
71 Q_FOREACH (
const QPointF &pt, points) {
78 m_d->renderingStartTime =
m_d->strokeTimeSource.elapsed();
83 m_d->renderingTime =
m_d->strokeTimeSource.elapsed() -
m_d->renderingStartTime;
88 m_d->cursorMoveStartTime =
m_d->strokeTimeSource.elapsed();
93 m_d->cursorMoveTime =
m_d->strokeTimeSource.elapsed() -
m_d->cursorMoveStartTime;
103 return m_d->cursorMoveTime ?
m_d->distance /
m_d->cursorMoveTime : 0.0;
108 return m_d->renderingTime ?
m_d->distance /
m_d->renderingTime : 0.0;
113 return m_d->renderingTime ?
m_d->framesCount * 1000.0 /
m_d->renderingTime : 0.0;
float value(const T *src, size_t ch)
~KisStrokeEfficiencyMeasurer()
void notifyCursorMoveFinished()
void notifyRenderingStarted()
void addSample(const QPointF &pt)
void setEnabled(bool value)
qreal averageRenderingSpeed() const
const QScopedPointer< Private > m_d
KisStrokeEfficiencyMeasurer()
qreal averageCursorSpeed() const
void addSamples(const QVector< QPointF > &points)
void notifyFrameRenderingStarted()
void notifyCursorMoveStarted()
void notifyRenderingFinished()
qreal kisDistance(const QPointF &pt1, const QPointF &pt2)
boost::optional< QPointF > lastSamplePos
QElapsedTimer strokeTimeSource