From 65b53cc601c80ad327fd77094f7357bd51dde880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 26 Dec 2005 17:41:18 +0000 Subject: [PATCH] quick fix for supporting B_TRANSPARENT_MAGIC pixels in CMAP8 bitmaps when drawing those with B_OP_ALPHA (composite, constant alpha) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15677 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../drawing/Painter/drawing_modes/DrawingModeAlphaCC.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/servers/app/drawing/Painter/drawing_modes/DrawingModeAlphaCC.h b/src/servers/app/drawing/Painter/drawing_modes/DrawingModeAlphaCC.h index b8f09915c9..5ac7ea6417 100644 --- a/src/servers/app/drawing/Painter/drawing_modes/DrawingModeAlphaCC.h +++ b/src/servers/app/drawing/Painter/drawing_modes/DrawingModeAlphaCC.h @@ -149,7 +149,9 @@ blend_color_hspan_alpha_cc(int x, int y, unsigned len, // non-solid opacity do { uint16 alpha = hAlpha * *covers; - if (alpha) { +// if (alpha) { +if (alpha && (colors->a & 0xff)) { + // support for transparent magic if (alpha == 255 * 255) { ASSIGN_ALPHA_CC(p, colors->r, colors->g, colors->b); } else { @@ -165,14 +167,20 @@ blend_color_hspan_alpha_cc(int x, int y, unsigned len, uint16 alpha = hAlpha * cover; if (alpha == 255 * 255) { do { +if (colors->a & 0xff) { + // support for transparent magic ASSIGN_ALPHA_CC(p, colors->r, colors->g, colors->b); +} p += 4; ++colors; } while(--len); // solid partial opacity } else if (alpha) { do { +if (colors->a & 0xff) { + // support for transparent magic BLEND_ALPHA_CC(p, colors->r, colors->g, colors->b, alpha); +} p += 4; ++colors; } while(--len);