Krita Source Code Documentation
Loading...
Searching...
No Matches
KoAlphaMaskApplicatorFactory.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2020 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KoAlphaMaskApplicatorFactory.h
"
8
9
#include <
KoColorModelStandardIdsUtils.h
>
10
#include <
kis_assert.h
>
11
12
#include "
KoAlphaMaskApplicatorFactoryImpl.h
"
13
14
template
<
typename
channels_type>
15
struct
CreateApplicator
16
{
17
KoAlphaMaskApplicatorBase
*
operator()
(
int
numChannels,
int
alphaPos) {
18
if
(numChannels == 4) {
19
KIS_ASSERT
(alphaPos == 3);
20
return
createOptimizedClass
<
21
KoAlphaMaskApplicatorFactoryImpl<channels_type, 4, 3>
>();
22
}
else
if
(numChannels == 5) {
23
KIS_ASSERT
(alphaPos == 4);
24
return
createOptimizedClass
<
25
KoAlphaMaskApplicatorFactoryImpl<channels_type, 5, 4>
>();
26
}
else
if
(numChannels == 2) {
27
KIS_ASSERT
(alphaPos == 1);
28
return
createOptimizedClass
<
29
KoAlphaMaskApplicatorFactoryImpl<channels_type, 2, 1>
>();
30
}
else
if
(numChannels == 1) {
31
KIS_ASSERT
(alphaPos == 0);
32
return
createOptimizedClass
<
33
KoAlphaMaskApplicatorFactoryImpl<channels_type, 1, 0>
>();
34
}
else
{
35
KIS_ASSERT
(0);
36
}
37
38
return
0;
39
}
40
};
41
42
KoAlphaMaskApplicatorBase
*
KoAlphaMaskApplicatorFactory::create
(
KoID
depthId,
int
numChannels,
int
alphaPos)
43
{
44
return
channelTypeForColorDepthId<CreateApplicator>(depthId, numChannels, alphaPos);
45
}
KoAlphaMaskApplicatorFactoryImpl.h
KoAlphaMaskApplicatorFactory.h
KoColorModelStandardIdsUtils.h
createOptimizedClass
auto createOptimizedClass(Args &&...param)
Definition
KoMultiArchBuildSupport.h:22
KoAlphaMaskApplicatorBase
Definition
KoAlphaMaskApplicatorBase.h:17
KoAlphaMaskApplicatorFactoryImpl
Definition
KoAlphaMaskApplicatorFactoryImpl.h:16
KoAlphaMaskApplicatorFactory::create
static KoAlphaMaskApplicatorBase * create(KoID depthId, int numChannels, int alphaPos)
Definition
KoAlphaMaskApplicatorFactory.cpp:42
KoID
Definition
KoID.h:30
kis_assert.h
KIS_ASSERT
#define KIS_ASSERT(cond)
Definition
kis_assert.h:33
CreateApplicator
Definition
KoAlphaMaskApplicatorFactory.cpp:16
CreateApplicator::operator()
KoAlphaMaskApplicatorBase * operator()(int numChannels, int alphaPos)
Definition
KoAlphaMaskApplicatorFactory.cpp:17
libs
pigment
KoAlphaMaskApplicatorFactory.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52