7#ifndef _KOCOMPOSITEOP_COPY_CHANNEL_H_
8#define _KOCOMPOSITEOP_COPY_CHANNEL_H_
20template<
class Traits, q
int32 channel_pos>
34 template<
bool alphaLocked,
bool allChannelFlags>
39 opacity = mul(opacity, maskAlpha);
41 if(allChannelFlags || channelFlags.testBit(channel_pos)) {
43 return lerp(dstAlpha, srcAlpha, opacity);
45 srcAlpha = mul(srcAlpha, opacity);
46 dst[channel_pos] =
lerp(dst[channel_pos], src[channel_pos], srcAlpha);
QPointF lerp(const QPointF &p1, const QPointF &p2, qreal t)
KoColorSpaceMathsTraits< channels_type >::compositetype composite_type
static const qint32 alpha_pos
KoCompositeOpBase< Traits, KoCompositeOpCopyChannel< Traits, channel_pos > > base_class
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)
KoCompositeOpCopyChannel(const KoColorSpace *cs, const QString &id, const QString &category)
Traits::channels_type channels_type