diff options
Diffstat (limited to 'Userland/Libraries/LibGfx/Painter.cpp')
-rw-r--r-- | Userland/Libraries/LibGfx/Painter.cpp | 8 |
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; |