Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCompositeColorTransformation.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KoCompositeColorTransformation.h
"
8
9
#include <QVector>
10
11
12
struct
Q_DECL_HIDDEN
KoCompositeColorTransformation
::
Private
13
{
14
~Private
() {
15
qDeleteAll(transformations);
16
}
17
18
QVector<KoColorTransformation*>
transformations
;
19
};
20
21
22
KoCompositeColorTransformation::KoCompositeColorTransformation
(
Mode
mode)
23
: m_d(new
Private
)
24
{
25
Q_ASSERT_X(mode ==
INPLACE
,
"KoCompositeColorTransformation"
,
"BUFFERED mode is not implemented yet!"
);
26
Q_UNUSED(mode);
27
}
28
29
KoCompositeColorTransformation::~KoCompositeColorTransformation
()
30
{
31
}
32
33
void
KoCompositeColorTransformation::appendTransform
(
KoColorTransformation
*transform)
34
{
35
if
(
transform
) {
36
m_d
->transformations.append(
transform
);
37
}
38
}
39
40
void
KoCompositeColorTransformation::transform
(
const
quint8 *src, quint8 *dst, qint32 nPixels)
const
41
{
42
QVector<KoColorTransformation*>::const_iterator
begin =
m_d
->transformations.constBegin();
43
QVector<KoColorTransformation*>::const_iterator
it = begin;
44
QVector<KoColorTransformation*>::const_iterator
end =
m_d
->transformations.constEnd();
45
46
for
(; it != end; ++it) {
47
if
(it == begin) {
48
(*it)->transform(src, dst, nPixels);
49
}
else
{
50
(*it)->transform(dst, dst, nPixels);
51
}
52
}
53
}
54
55
KoColorTransformation
*
KoCompositeColorTransformation::createOptimizedCompositeTransform
(
const
QVector<KoColorTransformation*>
transforms)
56
{
57
KoColorTransformation
*finalTransform = 0;
58
59
int
numValidTransforms = 0;
60
foreach
(
KoColorTransformation
*t, transforms) {
61
numValidTransforms += bool(t);
62
}
63
64
if
(numValidTransforms > 1) {
65
KoCompositeColorTransformation
*compositeTransform =
66
new
KoCompositeColorTransformation
(
67
KoCompositeColorTransformation::INPLACE
);
68
69
foreach
(
KoColorTransformation
*t, transforms) {
70
if
(t) {
71
compositeTransform->
appendTransform
(t);
72
}
73
}
74
75
finalTransform = compositeTransform;
76
77
}
else
if
(numValidTransforms == 1) {
78
foreach
(
KoColorTransformation
*t, transforms) {
79
if
(t) {
80
finalTransform = t;
81
break
;
82
}
83
}
84
}
85
86
return
finalTransform;
87
}
KoCompositeColorTransformation.h
KoColorTransformation
Definition
KoColorTransformation.h:34
QList
Definition
KisQStringListFwd.h:16
Private
Definition
SvgTransformParser.cpp:20
KoCompositeColorTransformation
Definition
KoCompositeColorTransformation.cpp:13
KoCompositeColorTransformation::transformations
QVector< KoColorTransformation * > transformations
Definition
KoCompositeColorTransformation.cpp:18
KoCompositeColorTransformation::transform
void transform(const quint8 *src, quint8 *dst, qint32 nPixels) const override
Definition
KoCompositeColorTransformation.cpp:40
KoCompositeColorTransformation::Mode
Mode
Definition
KoCompositeColorTransformation.h:35
KoCompositeColorTransformation::INPLACE
@ INPLACE
Definition
KoCompositeColorTransformation.h:36
KoCompositeColorTransformation::~KoCompositeColorTransformation
~KoCompositeColorTransformation() override
Definition
KoCompositeColorTransformation.cpp:29
KoCompositeColorTransformation::~Private
~Private()
Definition
KoCompositeColorTransformation.cpp:14
KoCompositeColorTransformation::KoCompositeColorTransformation
KoCompositeColorTransformation(Mode mode)
Definition
KoCompositeColorTransformation.cpp:22
KoCompositeColorTransformation::m_d
const QScopedPointer< Private > m_d
Definition
KoCompositeColorTransformation.h:62
KoCompositeColorTransformation::appendTransform
void appendTransform(KoColorTransformation *transform)
Definition
KoCompositeColorTransformation.cpp:33
KoCompositeColorTransformation::createOptimizedCompositeTransform
static KoColorTransformation * createOptimizedCompositeTransform(const QVector< KoColorTransformation * > transforms)
Definition
KoCompositeColorTransformation.cpp:55
libs
pigment
KoCompositeColorTransformation.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52