36 const QBitArray& channelFlags ) {
39 channels_type appliedAlpha = mul(maskAlpha, srcAlpha, opacity);
43 if (dstAlpha != zeroValue<channels_type>() && srcAlpha != zeroValue<channels_type>()) {
45 for (qint8 channel = 0; channel <
channels_nb; ++channel)
46 if(channel !=
alpha_pos && (allChannelFlags || channelFlags.testBit(channel))) {
47 dst[channel] =
lerp(src[channel],dst[channel],dstAlpha);
50 else if (srcAlpha != zeroValue<channels_type>()) {
53 for (qint8 channel = 0; channel <
channels_nb; ++channel)
54 if(channel !=
alpha_pos && (allChannelFlags || channelFlags.testBit(channel)))
55 dst[channel] = src[channel];