mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:37:35 +00:00
LibGfx: Support color blending in Painter::draw_bitmap
This method is commonly used by bitmap text rendering. Adding support for color blending enables support in the browser for text opacity using their color property.
This commit is contained in:
parent
75a3be852d
commit
d345a3689f
1 changed files with 5 additions and 3 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue