Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCompositeOpCopyChannel< Traits, channel_pos > Class Template Reference

#include <KoCompositeOpCopyChannel.h>

+ Inheritance diagram for KoCompositeOpCopyChannel< Traits, channel_pos >:

Public Member Functions

 KoCompositeOpCopyChannel (const KoColorSpace *cs, const QString &id, const QString &category)
 
- Public Member Functions inherited from KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > >
void composite (const KoCompositeOp::ParameterInfo &params) const override
 
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
 
 KoCompositeOpBase (const KoColorSpace *cs, const QString &id, const QString &category)
 
- Public Member Functions inherited from KoCompositeOp
QString category () const
 
const KoColorSpacecolorSpace () 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

template<bool alphaLocked, bool allChannelFlags>
static channels_type composeColorChannels (const channels_type *src, channels_type srcAlpha, channels_type *dst, channels_type dstAlpha, channels_type maskAlpha, channels_type opacity, const QBitArray &channelFlags)
 
- Static Public Member Functions inherited from KoCompositeOp
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 ()
 

Private Types

typedef KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > > base_class
 
typedef Traits::channels_type channels_type
 
typedef KoColorSpaceMathsTraits< channels_type >::compositetype composite_type
 

Static Private Attributes

static const qint32 alpha_pos = Traits::alpha_pos
 

Additional Inherited Members

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

Detailed Description

template<class Traits, qint32 channel_pos>
class KoCompositeOpCopyChannel< Traits, channel_pos >

KoCompositeOpCopyChannel class

This class creates a CompositeOp that will just copy/blend a source channel to a destination channel

Parameters
channel_posthe channel to copy/blend

Definition at line 21 of file KoCompositeOpCopyChannel.h.

Member Typedef Documentation

◆ base_class

template<class Traits , qint32 channel_pos>
typedef KoCompositeOpBase< Traits, KoCompositeOpCopyChannel<Traits,channel_pos> > KoCompositeOpCopyChannel< Traits, channel_pos >::base_class
private

Definition at line 23 of file KoCompositeOpCopyChannel.h.

◆ channels_type

template<class Traits , qint32 channel_pos>
typedef Traits::channels_type KoCompositeOpCopyChannel< Traits, channel_pos >::channels_type
private

Definition at line 24 of file KoCompositeOpCopyChannel.h.

◆ composite_type

template<class Traits , qint32 channel_pos>
typedef KoColorSpaceMathsTraits<channels_type>::compositetype KoCompositeOpCopyChannel< Traits, channel_pos >::composite_type
private

Definition at line 25 of file KoCompositeOpCopyChannel.h.

Constructor & Destructor Documentation

◆ KoCompositeOpCopyChannel()

template<class Traits , qint32 channel_pos>
KoCompositeOpCopyChannel< Traits, channel_pos >::KoCompositeOpCopyChannel ( const KoColorSpace * cs,
const QString & id,
const QString & category )
inline

Definition at line 30 of file KoCompositeOpCopyChannel.h.

31 : base_class(cs, id, category) { }
KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > > base_class

Member Function Documentation

◆ composeColorChannels()

template<class Traits , qint32 channel_pos>
template<bool alphaLocked, bool allChannelFlags>
static channels_type KoCompositeOpCopyChannel< Traits, channel_pos >::composeColorChannels ( const channels_type * src,
channels_type srcAlpha,
channels_type * dst,
channels_type dstAlpha,
channels_type maskAlpha,
channels_type opacity,
const QBitArray & channelFlags )
inlinestatic

Definition at line 35 of file KoCompositeOpCopyChannel.h.

37 {
38 using namespace Arithmetic;
39 opacity = mul(opacity, maskAlpha);
40
41 if(allChannelFlags || channelFlags.testBit(channel_pos)) {
42 if(channel_pos == alpha_pos)
43 return lerp(dstAlpha, srcAlpha, opacity);
44
45 srcAlpha = mul(srcAlpha, opacity);
46 dst[channel_pos] = lerp(dst[channel_pos], src[channel_pos], srcAlpha);
47 }
48
49 return dstAlpha;
50 }
QPointF lerp(const QPointF &p1, const QPointF &p2, qreal t)
T mul(T a, T b)

References KoCompositeOpCopyChannel< Traits, channel_pos >::alpha_pos, and lerp().

Member Data Documentation

◆ alpha_pos

template<class Traits , qint32 channel_pos>
const qint32 KoCompositeOpCopyChannel< Traits, channel_pos >::alpha_pos = Traits::alpha_pos
staticprivate

Definition at line 27 of file KoCompositeOpCopyChannel.h.


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