diff options
Diffstat (limited to 'src/gui/painting/qrgba64_p.h')
-rw-r--r-- | src/gui/painting/qrgba64_p.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gui/painting/qrgba64_p.h b/src/gui/painting/qrgba64_p.h index 7776a5b08a..adceda2210 100644 --- a/src/gui/painting/qrgba64_p.h +++ b/src/gui/painting/qrgba64_p.h @@ -299,6 +299,21 @@ inline QRgba64 rgbBlend(QRgba64 d, QRgba64 s, uint rgbAlpha) return blend; } +static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src) +{ + if (src.isOpaque()) + dst = src; + else if (!src.isTransparent()) + dst = src + multiplyAlpha65535(dst, 65535 - src.alpha()); +} + +static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src, const int const_alpha) +{ + if (!src.isTransparent()) { + src = multiplyAlpha255(src, const_alpha); + dst = src + multiplyAlpha65535(dst, 65535 - src.alpha()); + } +} QT_END_NAMESPACE |