21 m_updatesFacade(updatesFacade),
22 m_batchUpdateStarted(new bool(false))
40 const QRect totalRect =
42 std::accumulate(totalDirtyRects.begin(), totalDirtyRects.end(), QRect(), std::bit_or<QRect>());
56 Q_FOREACH (
const QRect &rc, totalDirtyRects) {
64 *batchUpdateStarted =
false;
KisHoldUIUpdatesCommand(KisUpdatesFacade *updatesFacade, State state)
KisUpdatesFacade * m_updatesFacade
QSharedPointer< bool > m_batchUpdateStarted
virtual void addRunnableJobs(const QVector< KisRunnableStrokeJobDataBase * > &list)=0
virtual void notifyBatchUpdateStarted()=0
virtual void notifyBatchUpdateEnded()=0
virtual void disableUIUpdates()=0
virtual void notifyUIUpdateCompleted(const QRect &rc)=0
virtual QRect bounds() const =0
virtual QVector< QRect > enableUIUpdates()=0
QVector< QRect > splitAndFilterDabRect(const QRect &totalRect, const QVector< QRect > &dabRects, int idealPatchSize)
void addJobConcurrent(QVector< Job * > &jobs, Func func)
void addJobBarrier(QVector< Job * > &jobs, Func func)
KisRunnableStrokeJobsInterface * runnableJobsInterface() const