57{
61
62 using SharedData = QHash<KisPaintDeviceSP, QSharedPointer<KisPaintDevice::LodDataStruct>>;
64
65 SharedDataSP sharedData(new SharedData());
66
68
72 });
73
75
78 });
79
83 }
84 });
85
87
91
92 Q_FOREACH (const QRect &rc, rects) {
95
98 });
99 }
100 }
101
103
108 });
109 });
110
112 auto it = sharedData->begin();
113 auto end = sharedData->end();
114
115 for (; it != end; ++it) {
118 }
119 });
120
123 });
124}
void uploadLodDataStruct(LodDataStruct *dst)
KisRegion regionForLodSyncing() const
LodDataStruct * createLodDataStruct(int lod)
void updateLodDataStruct(LodDataStruct *dst, const QRect &srcRect)
virtual void blockUpdates()=0
virtual void unblockUpdates()=0
QSharedPointer< T > toQShared(T *ptr)
void recursiveApplyNodes(NodePointer node, Functor func)
void addJobSequentialNoCancel(QVector< Job * > &jobs, Func func)
void addJobConcurrent(QVector< Job * > &jobs, Func func)
void addJobSequential(QVector< Job * > &jobs, Func func)
void makeContainerUnique(C &container)
void addJobBarrier(QVector< Job * > &jobs, Func func)
QVector< QRect > splitRegionIntoPatches(const KisRegion ®ion, const QSize &patchSize)
void addJobBarrierNoCancel(QVector< Job * > &jobs, Func func)
virtual KisPaintDeviceList getLodCapableDevices() const
virtual void syncLodCache()