Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCompositeOp Class Reference

#include <KoCompositeOp.h>

+ Inheritance diagram for KoCompositeOp:

Classes

struct  ParameterInfo
 

Public Member Functions

QString category () const
 
const KoColorSpacecolorSpace () const
 
virtual void composite (const ParameterInfo &params) const
 
void composite (quint8 *dstRowStart, qint32 dstRowStride, const quint8 *srcRowStart, qint32 srcRowStride, const quint8 *maskRowStart, qint32 maskRowStride, qint32 rows, qint32 numColumns, float opacity, const QBitArray &channelFlags=QBitArray()) const
 
QString description () const
 
QString id () const
 
 KoCompositeOp (const KoColorSpace *cs, const QString &id, const QString &category=KoCompositeOp::categoryMisc())
 
virtual ~KoCompositeOp ()
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Static Public Member Functions

static QString categoryArithmetic ()
 
static QString categoryBinary ()
 
static QString categoryDark ()
 
static QString categoryHSI ()
 
static QString categoryHSL ()
 
static QString categoryHSV ()
 
static QString categoryHSY ()
 
static QString categoryLight ()
 
static QString categoryMisc ()
 
static QString categoryMix ()
 
static QString categoryModulo ()
 
static QString categoryNegative ()
 
static QString categoryQuadratic ()
 

Public Attributes

QString category
 
const KoColorSpacecolorSpace
 
QBitArray defaultChannelFlags
 
QString description
 
QString id
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Private Member Functions

 KoCompositeOp ()
 

Private Attributes

Private *const d
 

Detailed Description

Base for colorspace-specific blending modes.

Definition at line 107 of file KoCompositeOp.cpp.

Constructor & Destructor Documentation

◆ KoCompositeOp() [1/2]

KoCompositeOp::KoCompositeOp ( const KoColorSpace * cs,
const QString & id,
const QString & category = KoCompositeOp::categoryMisc() )
Parameters
csa pointer to the color space that can be used with this composite op
idthe identifier for this composite op (not user visible)
categorythe name of the category where to put that composite op when displayed
userVisibledefine whether or not that composite op should be visible in a user interface

Definition at line 125 of file KoCompositeOp.cpp.

126 : d(new Private)
127{
128 d->colorSpace = cs;
129 d->id = id;
130 d->description = compositeOpDisplayName(id);
131 d->category = category;
132 if (d->category.isEmpty()) {
133 d->category = categoryMisc();
134 }
135}
static QString compositeOpDisplayName(const QString &id)
static QString categoryMisc()
Private *const d

References category, categoryMisc(), compositeOpDisplayName(), d, and id.

◆ ~KoCompositeOp()

KoCompositeOp::~KoCompositeOp ( )
virtual

Definition at line 120 of file KoCompositeOp.cpp.

121{
122 delete d;
123}

References d.

◆ KoCompositeOp() [2/2]

KoCompositeOp::KoCompositeOp ( )
private

Definition at line 115 of file KoCompositeOp.cpp.

115 : d(new Private)
116{
117
118}

Member Function Documentation

◆ category()

QString KoCompositeOp::category ( ) const
Returns
the category associated with the composite op

◆ categoryArithmetic()

QString KoCompositeOp::categoryArithmetic ( )
static

Definition at line 31 of file KoCompositeOp.cpp.

31{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("arithmetic"); }
#define LAZY_STATIC_CATEGORY_DISPLAY_NAME(n)

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryBinary()

QString KoCompositeOp::categoryBinary ( )
static

Definition at line 32 of file KoCompositeOp.cpp.

32{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("binary"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryDark()

QString KoCompositeOp::categoryDark ( )
static

Definition at line 36 of file KoCompositeOp.cpp.

36{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("dark"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryHSI()

QString KoCompositeOp::categoryHSI ( )
static

Definition at line 38 of file KoCompositeOp.cpp.

38{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("hsi"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryHSL()

QString KoCompositeOp::categoryHSL ( )
static

Definition at line 39 of file KoCompositeOp.cpp.

39{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("hsl"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryHSV()

QString KoCompositeOp::categoryHSV ( )
static

Definition at line 40 of file KoCompositeOp.cpp.

40{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("hsv"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryHSY()

QString KoCompositeOp::categoryHSY ( )
static

Definition at line 37 of file KoCompositeOp.cpp.

37{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("hsy"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryLight()

QString KoCompositeOp::categoryLight ( )
static

Definition at line 35 of file KoCompositeOp.cpp.

35{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("light"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryMisc()

QString KoCompositeOp::categoryMisc ( )
static

Definition at line 42 of file KoCompositeOp.cpp.

42{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("misc"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryMix()

QString KoCompositeOp::categoryMix ( )
static

Definition at line 41 of file KoCompositeOp.cpp.

41{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("mix"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryModulo()

QString KoCompositeOp::categoryModulo ( )
static

Definition at line 33 of file KoCompositeOp.cpp.

33{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("modulo"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryNegative()

QString KoCompositeOp::categoryNegative ( )
static

Definition at line 34 of file KoCompositeOp.cpp.

34{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("negative"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ categoryQuadratic()

QString KoCompositeOp::categoryQuadratic ( )
static

Definition at line 43 of file KoCompositeOp.cpp.

43{ return LAZY_STATIC_CATEGORY_DISPLAY_NAME("quadratic"); }

References LAZY_STATIC_CATEGORY_DISPLAY_NAME.

◆ colorSpace()

const KoColorSpace * KoCompositeOp::colorSpace ( ) const
Returns
the color space that can use and own this composite op

◆ composite() [1/2]

void KoCompositeOp::composite ( const ParameterInfo & params) const
virtual

Same as previous, but uses a parameter structure

Reimplemented in KoCompositeOpAlphaBase< _CSTraits, _compositeOp, _alphaLocked >, KoCompositeOpAlphaBase< _CSTraits, KoCompositeOpOver< _CSTraits >, false >, KoCompositeOpAlphaBase< _CSTraits, RgbCompositeOpBumpmap< _CSTraits >, true >, KoCompositeOpAlphaBase< _CSTraits, _compositeOp, _alphaLocked >, KoCompositeOpAlphaBase< _CSTraits, KoCompositeOpOver< _CSTraits >, false >, KoCompositeOpAlphaBase< _CSTraits, RgbCompositeOpBumpmap< _CSTraits >, true >, KoOptimizedCompositeOpCopy128< _impl >, KoOptimizedCompositeOpCopyU64< _impl >, KoOptimizedCompositeOpCopy32< _impl >, KoOptimizedCompositeOpOver128< _impl >, KoOptimizedCompositeOpOverU64< _impl >, KoOptimizedCompositeOpOver32< _impl >, KoCompositeOpAlphaBase< _CSTraits, _compositeOp, _alphaLocked >, KoCompositeOpAlphaBase< _CSTraits, KoCompositeOpOver< _CSTraits >, false >, KoCompositeOpAlphaBase< _CSTraits, RgbCompositeOpBumpmap< _CSTraits >, true >, KoCompositeOpAlphaDarken< Traits, ParamsWrapper >, KoCompositeOpBase< _CSTraits, _compositeOp >, KoCompositeOpBase< CS_Traits, KoCompositeOpBehind< CS_Traits, BlendingPolicy > >, KoCompositeOpBase< CS_Traits, KoCompositeOpDestinationAtop< CS_Traits > >, KoCompositeOpBase< CS_Traits, KoCompositeOpDestinationIn< CS_Traits > >, KoCompositeOpBase< CS_Traits, KoCompositeOpGreater< CS_Traits, BlendingPolicy > >, KoCompositeOpBase< Traits, AlphaColorSpaceMultiplyOp< Traits > >, KoCompositeOpBase< Traits, KoCompositeOpCopy2< Traits > >, KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > >, KoCompositeOpBase< Traits, KoCompositeOpGenericHSLFunctor< Traits, CompositeOpFunctor > >, KoCompositeOpBase< Traits, KoCompositeOpGenericHSLFunctor< Traits, detail::CompositeFunctionWrapperHSL< Traits, compositeFunc > > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCAlpha< Traits, compositeFunc, BlendingPolicy > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCFunctor< Traits, CompositeOpFunctor, BlendingPolicy > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCFunctor< Traits, detail::CompositeFunctionWrapper< Traits, compositeFunc >, BlendingPolicy > >, KoCompositeOpDissolve< Traits >, KoCompositeOpErase< _CSTraits >, KoCompositeOpMarker< Traits >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpAlphaDarken32Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarken32Impl< xsimd::current_arch, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarken32Impl< xsimd::current_arch, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpCopy128< _impl >, KoOptimizedCompositeOpCopyU64< _impl >, KoOptimizedCompositeOpCopy32< _impl >, KoOptimizedCompositeOpOver128< _impl >, KoOptimizedCompositeOpOverU64< _impl >, KoOptimizedCompositeOpOver32< _impl >, RgbCompositeOpIn< _CSTraits >, RgbCompositeOpOut< _CSTraits >, KoCompositeOpAlphaBase< _CSTraits, _compositeOp, _alphaLocked >, KoCompositeOpAlphaBase< _CSTraits, KoCompositeOpOver< _CSTraits >, false >, KoCompositeOpAlphaBase< _CSTraits, RgbCompositeOpBumpmap< _CSTraits >, true >, KoCompositeOpAlphaDarken< Traits, ParamsWrapper >, KoCompositeOpBase< _CSTraits, _compositeOp >, KoCompositeOpBase< CS_Traits, KoCompositeOpBehind< CS_Traits, BlendingPolicy > >, KoCompositeOpBase< CS_Traits, KoCompositeOpDestinationAtop< CS_Traits > >, KoCompositeOpBase< CS_Traits, KoCompositeOpDestinationIn< CS_Traits > >, KoCompositeOpBase< CS_Traits, KoCompositeOpGreater< CS_Traits, BlendingPolicy > >, KoCompositeOpBase< Traits, AlphaColorSpaceMultiplyOp< Traits > >, KoCompositeOpBase< Traits, KoCompositeOpCopy2< Traits > >, KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > >, KoCompositeOpBase< Traits, KoCompositeOpGenericHSLFunctor< Traits, CompositeOpFunctor > >, KoCompositeOpBase< Traits, KoCompositeOpGenericHSLFunctor< Traits, detail::CompositeFunctionWrapperHSL< Traits, compositeFunc > > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCAlpha< Traits, compositeFunc, BlendingPolicy > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCFunctor< Traits, CompositeOpFunctor, BlendingPolicy > >, KoCompositeOpBase< Traits, KoCompositeOpGenericSCFunctor< Traits, detail::CompositeFunctionWrapper< Traits, compositeFunc >, BlendingPolicy > >, KoCompositeOpDissolve< Traits >, KoCompositeOpErase< _CSTraits >, KoCompositeOpMarker< Traits >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarken128Impl< _impl, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarkenU64Impl< _impl, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpAlphaDarken32Impl< _impl, ParamsWrapper >, KoOptimizedCompositeOpAlphaDarken32Impl< xsimd::current_arch, KoAlphaDarkenParamsWrapperCreamy >, KoOptimizedCompositeOpAlphaDarken32Impl< xsimd::current_arch, KoAlphaDarkenParamsWrapperHard >, KoOptimizedCompositeOpCopy128< _impl >, KoOptimizedCompositeOpCopyU64< _impl >, KoOptimizedCompositeOpCopy32< _impl >, KoOptimizedCompositeOpOver128< _impl >, KoOptimizedCompositeOpOverU64< _impl >, KoOptimizedCompositeOpOver32< _impl >, RgbCompositeOpIn< _CSTraits >, and RgbCompositeOpOut< _CSTraits >.

Definition at line 159 of file KoCompositeOp.cpp.

160{
161 composite(params.dstRowStart , params.dstRowStride ,
162 params.srcRowStart , params.srcRowStride ,
163 params.maskRowStart , params.maskRowStride,
164 params.rows , params.cols ,
165 params.opacity, params.channelFlags );
166}
void composite(quint8 *dstRowStart, qint32 dstRowStride, const quint8 *srcRowStart, qint32 srcRowStride, const quint8 *maskRowStart, qint32 maskRowStride, qint32 rows, qint32 numColumns, float opacity, const QBitArray &channelFlags=QBitArray()) const

References KoCompositeOp::ParameterInfo::channelFlags, KoCompositeOp::ParameterInfo::cols, composite(), KoCompositeOp::ParameterInfo::dstRowStart, KoCompositeOp::ParameterInfo::dstRowStride, KoCompositeOp::ParameterInfo::maskRowStart, KoCompositeOp::ParameterInfo::maskRowStride, KoCompositeOp::ParameterInfo::opacity, KoCompositeOp::ParameterInfo::rows, KoCompositeOp::ParameterInfo::srcRowStart, and KoCompositeOp::ParameterInfo::srcRowStride.

◆ composite() [2/2]

void KoCompositeOp::composite ( quint8 * dstRowStart,
qint32 dstRowStride,
const quint8 * srcRowStart,
qint32 srcRowStride,
const quint8 * maskRowStart,
qint32 maskRowStride,
qint32 rows,
qint32 numColumns,
float opacity,
const QBitArray & channelFlags = QBitArray() ) const
Parameters
dstRowStartpointer to the start of the byte array we will composite the source on
dstRowStridelength of the rows of the block of destination pixels in bytes
srcRowStartpointer to the start of the byte array we will mix with dest
srcRowStridelength of the rows of the block of src in bytes pixels (may be different from the rowstride of the dst pixels, in which case the smaller value is used). If srcRowStride is null it is assumed that the source is a constant color.
maskRowStartstart of the byte mask that determines whether and if so, then how much of src is used for blending
maskRowStridelength of the mask scanlines in bytes
rowsnumber of scanlines to blend
numColumnslength of the row of pixels in pixels
opacitytransparency with which to blend
channelFlagsa bit array that determines which channels should be processed (channels are in the order of the channels in the colorspace)

Definition at line 137 of file KoCompositeOp.cpp.

142{
144 params.dstRowStart = dstRowStart;
145 params.dstRowStride = dstRowStride;
146 params.srcRowStart = srcRowStart;
147 params.srcRowStride = srcRowStride;
148 params.maskRowStart = maskRowStart;
149 params.maskRowStride = maskRowStride;
150 params.rows = rows;
151 params.cols = numColumns;
152 params.opacity = opacity;
153 params.flow = 1.0f;
154 params.channelFlags = channelFlags;
155 composite(params);
156}

References KoCompositeOp::ParameterInfo::channelFlags, KoCompositeOp::ParameterInfo::cols, composite(), KoCompositeOp::ParameterInfo::dstRowStart, KoCompositeOp::ParameterInfo::dstRowStride, KoCompositeOp::ParameterInfo::flow, KoCompositeOp::ParameterInfo::maskRowStart, KoCompositeOp::ParameterInfo::maskRowStride, KoCompositeOp::ParameterInfo::opacity, KoCompositeOp::ParameterInfo::rows, KoCompositeOp::ParameterInfo::srcRowStart, and KoCompositeOp::ParameterInfo::srcRowStride.

◆ description()

QString KoCompositeOp::description ( ) const
Returns
the user visible string for this composite op

◆ id()

QString KoCompositeOp::id ( ) const
Returns
the identifier of this composite op

Member Data Documentation

◆ category

QString KoCompositeOp::category

Definition at line 111 of file KoCompositeOp.cpp.

◆ colorSpace

const KoColorSpace * KoCompositeOp::colorSpace

Definition at line 108 of file KoCompositeOp.cpp.

◆ d

Private* const KoCompositeOp::d
private

Definition at line 128 of file KoCompositeOp.h.

◆ defaultChannelFlags

QBitArray KoCompositeOp::defaultChannelFlags

Definition at line 112 of file KoCompositeOp.cpp.

◆ description

QString KoCompositeOp::description

Definition at line 110 of file KoCompositeOp.cpp.

◆ id

QString KoCompositeOp::id

Definition at line 109 of file KoCompositeOp.cpp.


The documentation for this class was generated from the following files: