summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGfx/Painter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibGfx/Painter.cpp')
-rw-r--r--Userland/Libraries/LibGfx/Painter.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Userland/Libraries/LibGfx/Painter.cpp b/Userland/Libraries/LibGfx/Painter.cpp
index 3576d32f5b..b7b13af879 100644
--- a/Userland/Libraries/LibGfx/Painter.cpp
+++ b/Userland/Libraries/LibGfx/Painter.cpp
@@ -655,7 +655,7 @@ void Painter::draw_bitmap(IntPoint const& p, GlyphBitmap const& bitmap, Color co
for (int row = first_row; row <= last_row; ++row) {
for (int j = 0; j <= (last_column - first_column); ++j) {
if (bitmap.bit_at(j + first_column, row))
- dst[j] = color.value();
+ dst[j] = Color::from_rgba(dst[j]).blend(color).value();
}
dst += dst_skip;
}
@@ -664,8 +664,10 @@ void Painter::draw_bitmap(IntPoint const& p, GlyphBitmap const& bitmap, Color co
for (int j = 0; j <= (last_column - first_column); ++j) {
if (bitmap.bit_at((j + first_column), row)) {
for (int iy = 0; iy < scale; ++iy)
- for (int ix = 0; ix < scale; ++ix)
- dst[j * scale + ix + iy * dst_skip] = color.value();
+ for (int ix = 0; ix < scale; ++ix) {
+ auto pixel_index = j * scale + ix + iy * dst_skip;
+ dst[pixel_index] = Color::from_rgba(dst[pixel_index]).blend(color).value();
+ }
}
}
dst += dst_skip * scale;