Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDabRenderingExecutor.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
11#include "KisDabRenderingJob.h"
12#include "KisRenderedDab.h"
16
22
25 KisRunnableStrokeJobsInterface *runnableJobsInterface,
26 KisMirrorOption *mirrorOption,
27 KisPrecisionOption *precisionOption)
28 : m_d(new Private)
29{
30 m_d->runnableJobsInterface = runnableJobsInterface;
31
32 m_d->renderingQueue.reset(
33 new KisDabRenderingQueue(cs, resourcesFactory));
34
36 cache->setMirrorPostprocessing(mirrorOption);
37 cache->setPrecisionOption(precisionOption);
38
39 m_d->renderingQueue->setCacheInterface(cache);
40}
41
45
47 qreal opacity, qreal flow)
48{
49 KisDabRenderingJobSP job = m_d->renderingQueue->addDab(request, opacity, flow);
50 if (job) {
51 m_d->runnableJobsInterface->addRunnableJob(
53 new KisDabRenderingJobRunner(job, m_d->renderingQueue.data(), m_d->runnableJobsInterface),
55 }
56}
57
59 int oneTimeLimit,
60 bool *someDabsLeft)
61{
62 return m_d->renderingQueue->takeReadyDabs(returnMutableDabs, oneTimeLimit, someDabsLeft);
63}
64
66{
67 return m_d->renderingQueue->hasPreparedDabs();
68}
69
71{
72 return m_d->renderingQueue->averageExecutionTime();
73}
74
76{
77 return m_d->renderingQueue->averageDabSize();
78}
void setPrecisionOption(KisPrecisionOption *option)
void setMirrorPostprocessing(KisMirrorOption *option)
QList< KisRenderedDab > takeReadyDabs(bool returnMutableDabs=false, int oneTimeLimit=-1, bool *someDabsLeft=0)
KisDabRenderingExecutor(const KoColorSpace *cs, KisDabCacheUtils::ResourcesFactory resourcesFactory, KisRunnableStrokeJobsInterface *runnableJobsInterface, KisMirrorOption *mirrorOption=0, KisPrecisionOption *precisionOption=0)
const QScopedPointer< Private > m_d
void addDab(const KisDabCacheUtils::DabRequestInfo &request, qreal opacity, qreal flow)
std::function< DabRenderingResources *()> ResourcesFactory
KisRunnableStrokeJobsInterface * runnableJobsInterface
QScopedPointer< KisDabRenderingQueue > renderingQueue