|
Krita Source Code Documentation
|
#include <KoOptimizedCompositeOpOver32.h>
Classes | |
| struct | ParamsWrapper |
Static Public Member Functions | |
| template<bool haveMask, typename _impl > | |
| static ALWAYS_INLINE void | compositeOnePixelScalar (const channels_type *src, channels_type *dst, const quint8 *mask, float opacity, const ParamsWrapper &oparams) |
| template<bool haveMask, bool src_aligned, typename _impl > | |
| static ALWAYS_INLINE void | compositeVector (const quint8 *src, quint8 *dst, const quint8 *mask, float opacity, const ParamsWrapper &oparams) |
Definition at line 20 of file KoOptimizedCompositeOpOver32.h.
|
inlinestatic |
Definition at line 121 of file KoOptimizedCompositeOpOver32.h.
References OverCompositor32< channels_type, pixel_type, alphaLocked, allChannelsFlag >::ParamsWrapper::channelFlags, OptiDiv< _impl >::divScalar(), KoStreamedMath< _impl >::lerp_mixed_u8_float(), and KoStreamedMath< _impl >::round_float_to_u8().
|
inlinestatic |
The value of new_alpha can have some zero values, which will result in NaN values while division. But when converted to integers these NaN values will be converted to zeroes, which is exactly what we need
Definition at line 31 of file KoOptimizedCompositeOpOver32.h.
References OptiDiv< _impl >::divVector(), KoStreamedMath< _impl >::fetch_mask_8(), and KoStreamedMath< _impl >::write_channels_32().