Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_filter_stroke_strategy.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_FILTER_STROKE_STRATEGY_H
8#define __KIS_FILTER_STROKE_STRATEGY_H
9
11#include "kis_types.h"
12#include "kis_lod_transform.h"
14
16{
17public:
19 public:
20 FilterJobData(int frameTime = -1)
21 : KisStrokeJobData(CONCURRENT),
22 frameTime(frameTime)
23 {}
24
25 KisStrokeJobData* createLodClone(int levelOfDetail) override {
26 return new FilterJobData(*this, levelOfDetail);
27 }
28
30
31 private:
32 FilterJobData(const FilterJobData &rhs, int levelOfDetail)
33 : KisStrokeJobData(rhs)
34 , frameTime(rhs.frameTime)
35 {
36 KisLodTransform t(levelOfDetail);
37 }
38 };
39
41 public:
43 : KisStrokeJobData(SEQUENTIAL),
44 m_idleBarrierCookie(new std::tuple<>())
45 {
46 }
47
48 KisStrokeJobData* createLodClone(int levelOfDetail) override {
49 return new IdleBarrierData(*this, levelOfDetail);
50 }
51
53
55 return m_idleBarrierCookie;
56 }
57
58
59 private:
60 IdleBarrierData(IdleBarrierData &rhs, int /*levelOfDetail*/)
61 : KisStrokeJobData(rhs)
62 {
63 // the cookie is used for preview only, therefore in
64 // instant preview mode we pass it to the lodn stroke
65 rhs.m_idleBarrierCookie.swap(m_idleBarrierCookie);
66 }
67
69 };
70
76
78
79public:
81 KisFilterConfigurationSP filterConfig,
82 KisResourcesSnapshotSP resources);
83
85 KisFilterConfigurationSP filterConfig,
86 KisResourcesSnapshotSP resources,
87 ExternalCancelUpdatesStorageSP externalCancelUpdatesStorage);
88 KisFilterStrokeStrategy(const KisFilterStrokeStrategy &rhs, int levelOfDetail);
89
90 ~KisFilterStrokeStrategy() override;
91
92
93 void initStrokeCallback() override;
94 void doStrokeCallback(KisStrokeJobData *data) override;
95 void cancelStrokeCallback() override;
96 void finishStrokeCallback() override;
97
98 KisStrokeStrategy* createLodClone(int levelOfDetail) override;
99
100private:
101 struct Private;
102 Private* const m_d;
103};
104
105#endif /* __KIS_FILTER_STROKE_STRATEGY_H */
KisStrokeJobData * createLodClone(int levelOfDetail) override
FilterJobData(const FilterJobData &rhs, int levelOfDetail)
KisStrokeJobData * createLodClone(int levelOfDetail) override
void doStrokeCallback(KisStrokeJobData *data) override
virtual KisStrokeStrategy * createLodClone(int levelOfDetail)