Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_processing_applicator.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef __KIS_PROCESSING_APPLICATOR_H
8
#define __KIS_PROCESSING_APPLICATOR_H
9
10
#include <future>
11
12
#include <
kundo2commandextradata.h
>
13
#include <
kundo2magicstring.h
>
14
15
#include "
KisImageSignals.h
"
16
#include "
kis_stroke_job_strategy.h
"
17
#include "
kis_types.h
"
18
19
#include "kritaimage_export.h"
20
21
class
KRITAIMAGE_EXPORT
KisProcessingApplicator
22
{
23
public
:
24
enum
ProcessingFlag
{
25
NONE
= 0x0,
26
RECURSIVE = 0x1,
27
NO_UI_UPDATES = 0x2,
28
SUPPORTS_WRAPAROUND_MODE = 0x4,
29
NO_IMAGE_UPDATES = 0x8
30
};
31
32
Q_DECLARE_FLAGS
(ProcessingFlags, ProcessingFlag)
33
34
public
:
35
KisProcessingApplicator
(
KisImageWSP
image,
36
KisNodeSP
node,
37
ProcessingFlags flags =
NONE
,
38
KisImageSignalVector
emitSignals =
KisImageSignalVector
(),
39
const
KUndo2MagicString
&name =
KUndo2MagicString
(),
40
KUndo2CommandExtraData
*extraData = 0,
41
int
macroId = -1);
42
KisProcessingApplicator
(
KisImageWSP
image,
43
KisNodeList
nodes =
KisNodeList
(),
44
ProcessingFlags flags =
NONE
,
45
KisImageSignalVector
emitSignals =
KisImageSignalVector
(),
46
const
KUndo2MagicString
&name =
KUndo2MagicString
(),
47
KUndo2CommandExtraData
*extraData = 0,
48
int
macroId = -1);
49
50
~KisProcessingApplicator
();
51
52
void
applyVisitor(
KisProcessingVisitorSP
visitor,
53
KisStrokeJobData::Sequentiality
sequentiality =
KisStrokeJobData::SEQUENTIAL
,
54
KisStrokeJobData::Exclusivity
exclusivity =
KisStrokeJobData::NORMAL
);
55
56
void
applyCommand(
KUndo2Command
*command,
57
KisStrokeJobData::Sequentiality
sequentiality =
KisStrokeJobData::SEQUENTIAL
,
58
KisStrokeJobData::Exclusivity
exclusivity =
KisStrokeJobData::NORMAL
);
59
60
void
applyVisitorAllFrames(
KisProcessingVisitorSP
visitor,
61
KisStrokeJobData::Sequentiality
sequentiality =
KisStrokeJobData::SEQUENTIAL
,
62
KisStrokeJobData::Exclusivity
exclusivity =
KisStrokeJobData::NORMAL
);
63
74
void
explicitlyEmitFinalSignals();
75
76
void
end();
77
void
cancel();
78
83
const
KisStrokeId
getStroke()
const
;
84
90
std::future<bool> &&successfullyCompletedFuture();
91
100
static
void
runSingleCommandStroke(
KisImageSP
image,
101
KUndo2Command
*cmd,
102
KisStrokeJobData::Sequentiality
sequentiality =
KisStrokeJobData::SEQUENTIAL
,
103
KisStrokeJobData::Exclusivity
exclusivity =
KisStrokeJobData::NORMAL
);
104
105
private
:
106
void
visitRecursively(
KisNodeSP
node,
107
KisProcessingVisitorSP
visitor,
108
KisStrokeJobData::Sequentiality
sequentiality,
109
KisStrokeJobData::Exclusivity
exclusivity);
110
111
private
:
112
KisImageWSP
m_image
;
113
KisNodeList
m_nodes
;
114
ProcessingFlags
m_flags
;
115
KisImageSignalVector
m_emitSignals
;
116
KisStrokeId
m_strokeId
;
117
bool
m_finalSignalsEmitted
;
118
QSharedPointer<bool>
m_sharedAllFramesToken
;
119
std::future<bool>
m_successfullyCompletedFuture
;
120
};
121
122
Q_DECLARE_OPERATORS_FOR_FLAGS
(KisProcessingApplicator::ProcessingFlags)
123
124
125
#endif
/* __KIS_PROCESSING_APPLICATOR_H */
NONE
@ NONE
Definition
KisFFMpegWrapper.h:39
KisImageSignals.h
KisImageSignalVector
QVector< KisImageSignalType > KisImageSignalVector
Definition
KisImageSignals.h:81
Q_DECLARE_FLAGS
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
KUndo2CommandExtraData
Definition
kundo2commandextradata.h:14
KUndo2Command
Definition
kundo2stack.h:87
KUndo2MagicString
Definition
kundo2magicstring.h:40
KisProcessingApplicator
Definition
kis_processing_applicator.h:22
KisProcessingApplicator::m_flags
ProcessingFlags m_flags
Definition
kis_processing_applicator.h:114
KisProcessingApplicator::m_sharedAllFramesToken
QSharedPointer< bool > m_sharedAllFramesToken
Definition
kis_processing_applicator.h:118
KisProcessingApplicator::ProcessingFlag
ProcessingFlag
Definition
kis_processing_applicator.h:24
KisProcessingApplicator::m_nodes
KisNodeList m_nodes
Definition
kis_processing_applicator.h:113
KisProcessingApplicator::m_emitSignals
KisImageSignalVector m_emitSignals
Definition
kis_processing_applicator.h:115
KisProcessingApplicator::m_image
KisImageWSP m_image
Definition
kis_processing_applicator.h:112
KisProcessingApplicator::m_finalSignalsEmitted
bool m_finalSignalsEmitted
Definition
kis_processing_applicator.h:117
KisProcessingApplicator::m_successfullyCompletedFuture
std::future< bool > m_successfullyCompletedFuture
Definition
kis_processing_applicator.h:119
KisProcessingApplicator::m_strokeId
KisStrokeId m_strokeId
Definition
kis_processing_applicator.h:116
KisSharedPtr< KisNode >
KisStrokeJobData::Sequentiality
Sequentiality
Definition
kis_stroke_job_strategy.h:17
KisStrokeJobData::SEQUENTIAL
@ SEQUENTIAL
Definition
kis_stroke_job_strategy.h:19
KisStrokeJobData::Exclusivity
Exclusivity
Definition
kis_stroke_job_strategy.h:24
KisStrokeJobData::NORMAL
@ NORMAL
Definition
kis_stroke_job_strategy.h:25
KisWeakSharedPtr< KisImage >
QList
Definition
KisQStringListFwd.h:16
QSharedPointer
Definition
KoCanvasResourceProvider.h:20
QWeakPointer
Definition
kis_uniform_paintop_property.h:72
Q_DECLARE_OPERATORS_FOR_FLAGS
Q_DECLARE_OPERATORS_FOR_FLAGS(KisBaseRectsWalker::SubtreeVisitFlags)
kis_stroke_job_strategy.h
kis_types.h
KisNodeList
QList< KisNodeSP > KisNodeList
Definition
kis_types.h:264
kundo2commandextradata.h
kundo2magicstring.h
libs
image
kis_processing_applicator.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52