54 if(allChannelFlags) { genericComposite<true,true,true> (params, flags); }
55 else { genericComposite<true,true,false>(params, flags); }
58 if(allChannelFlags) { genericComposite<true,false,true> (params, flags); }
59 else { genericComposite<true,false,false>(params, flags); }
64 if(allChannelFlags) { genericComposite<false,true,true> (params, flags); }
65 else { genericComposite<false,true,false>(params, flags); }
68 if(allChannelFlags) { genericComposite<false,false,true> (params, flags); }
69 else { genericComposite<false,false,false>(params, flags); }
86 for (qint32 r=0; r<params.
rows; ++r) {
89 const quint8* mask = maskRowStart;
91 for (qint32 c=0; c<params.
cols; ++c) {
94 channels_type mskAlpha = useMask ? scale<channels_type>(*mask) : unitValue<channels_type>();
96 if (!allChannelFlags && dstAlpha == zeroValue<channels_type>()) {
97 memset(
reinterpret_cast<quint8*
>(dst), 0,
pixel_size);
100 channels_type newDstAlpha = _compositeOp::template composeColorChannels<alphaLocked,allChannelFlags>(
101 src, srcAlpha, dst, dstAlpha, mskAlpha, opacity, channelFlags
105 dst[
alpha_pos] = alphaLocked ? dstAlpha : newDstAlpha;