diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-20 23:29:27 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-20 23:29:27 +0200 |
commit | 9405da4eb53ad02d2176ce285d03c0c445b81f12 (patch) | |
tree | 6507773ab6574a50120a11ffc41906cefbe10488 | |
parent | 8b198b4be836b4718cd3ce96e8ba8590697da45a (diff) | |
download | graphlcd-base-9405da4eb53ad02d2176ce285d03c0c445b81f12.tar.gz graphlcd-base-9405da4eb53ad02d2176ce285d03c0c445b81f12.tar.bz2 |
opacity support for monochrome images too
-rw-r--r-- | glcdgraphics/bitmap.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/glcdgraphics/bitmap.c b/glcdgraphics/bitmap.c index 0ffb039..1c5e4ed 100644 --- a/glcdgraphics/bitmap.c +++ b/glcdgraphics/bitmap.c @@ -560,18 +560,16 @@ void cBitmap::DrawBitmap(int x, int y, const cBitmap & bitmap, uint32_t color, u cl = data[(yt * bitmap.Width())+xt]; if (cl != cColor::Transparent) { if (ismonochrome) { - DrawPixel(xt+x, yt+y, (cl == cColor::Black) ? color : bgcolor); - } else { - if (opacity == 255) { - DrawPixel(xt+x, yt+y, cl); - } else { - alpha = (cl & 0xFF000000) >> 24; - alpha = (alpha * opacity) / 255; - DrawPixel(xt+x, yt+y, (cl & 0x00FFFFFF) | (alpha << 24)); - } + cl = (cl == cColor::Black) ? color : bgcolor; } - } - } + if (opacity != 255) { + alpha = (cl & 0xFF000000) >> 24; + alpha = (alpha * opacity) / 255; + cl = (cl & 0x00FFFFFF) | (alpha << 24); + } + DrawPixel(xt+x, yt+y, cl); + } + } } } } |