PixelPaint: Use the currently_edited_bitmap in the Tools

This way, you can actually edit the mask of a Layer!
This commit is contained in:
Tobias Christiansen 2022-03-07 22:37:26 +01:00 committed by Andreas Kling
parent 96829565d8
commit f972f8e7a8
7 changed files with 11 additions and 11 deletions

View file

@ -29,7 +29,7 @@ void BrushTool::on_mousedown(Layer* layer, MouseEvent& event)
// Shift+Click draws a line from the last position to current one.
if (layer_event.shift() && m_has_clicked) {
draw_line(layer->content_bitmap(), color_for(layer_event), m_last_position, layer_event.position());
draw_line(layer->currently_edited_bitmap(), color_for(layer_event), m_last_position, layer_event.position());
auto modified_rect = Gfx::IntRect::from_two_points(m_last_position, layer_event.position()).inflated(m_size * 2, m_size * 2);
layer->did_modify_bitmap(modified_rect);
m_last_position = layer_event.position();
@ -39,7 +39,7 @@ void BrushTool::on_mousedown(Layer* layer, MouseEvent& event)
const int first_draw_opacity = 10;
for (int i = 0; i < first_draw_opacity; ++i)
draw_point(layer->content_bitmap(), color_for(layer_event), layer_event.position());
draw_point(layer->currently_edited_bitmap(), color_for(layer_event), layer_event.position());
layer->did_modify_bitmap(Gfx::IntRect::centered_on(layer_event.position(), Gfx::IntSize { m_size * 2, m_size * 2 }));
m_last_position = layer_event.position();
@ -55,7 +55,7 @@ void BrushTool::on_mousemove(Layer* layer, MouseEvent& event)
if (!(layer_event.buttons() & GUI::MouseButton::Primary || layer_event.buttons() & GUI::MouseButton::Secondary))
return;
draw_line(layer->content_bitmap(), color_for(layer_event), m_last_position, layer_event.position());
draw_line(layer->currently_edited_bitmap(), color_for(layer_event), m_last_position, layer_event.position());
auto modified_rect = Gfx::IntRect::from_two_points(m_last_position, layer_event.position()).inflated(m_size * 2, m_size * 2);

View file

@ -82,10 +82,10 @@ void BucketTool::on_mousedown(Layer* layer, MouseEvent& event)
if (!layer->rect().contains(layer_event.position()))
return;
GUI::Painter painter(layer->content_bitmap());
auto target_color = layer->content_bitmap().get_pixel(layer_event.x(), layer_event.y());
GUI::Painter painter(layer->currently_edited_bitmap());
auto target_color = layer->currently_edited_bitmap().get_pixel(layer_event.x(), layer_event.y());
flood_fill(layer->content_bitmap(), layer_event.position(), target_color, m_editor->color_for(layer_event), m_threshold);
flood_fill(layer->currently_edited_bitmap(), layer_event.position(), target_color, m_editor->color_for(layer_event), m_threshold);
layer->did_modify_bitmap();
m_editor->did_complete_action();

View file

@ -67,7 +67,7 @@ void EllipseTool::on_mouseup(Layer* layer, MouseEvent& event)
return;
if (event.layer_event().button() == m_drawing_button) {
GUI::Painter painter(layer->content_bitmap());
GUI::Painter painter(layer->currently_edited_bitmap());
draw_using(painter, m_ellipse_start_position, m_ellipse_end_position, m_thickness);
m_drawing_button = GUI::MouseButton::None;
layer->did_modify_bitmap();

View file

@ -60,7 +60,7 @@ void LineTool::on_mouseup(Layer* layer, MouseEvent& event)
auto& layer_event = event.layer_event();
if (layer_event.button() == m_drawing_button) {
GUI::Painter painter(layer->content_bitmap());
GUI::Painter painter(layer->currently_edited_bitmap());
painter.draw_line(m_line_start_position, m_line_end_position, m_editor->color_for(m_drawing_button), m_thickness);
m_drawing_button = GUI::MouseButton::None;
layer->did_modify_bitmap();

View file

@ -24,7 +24,7 @@ void PickerTool::on_mousedown(Layer* layer, MouseEvent& event)
} else {
if (!layer || !layer->rect().contains(position))
return;
color = layer->content_bitmap().get_pixel(position);
color = layer->currently_edited_bitmap().get_pixel(position);
}
// We picked a transparent pixel, do nothing.

View file

@ -70,7 +70,7 @@ void RectangleTool::on_mouseup(Layer* layer, MouseEvent& event)
return;
if (event.layer_event().button() == m_drawing_button) {
GUI::Painter painter(layer->content_bitmap());
GUI::Painter painter(layer->currently_edited_bitmap());
draw_using(painter, m_rectangle_start_position, m_rectangle_end_position, m_thickness);
m_drawing_button = GUI::MouseButton::None;
layer->did_modify_bitmap();

View file

@ -40,7 +40,7 @@ void SprayTool::paint_it()
if (!layer)
return;
auto& bitmap = layer->content_bitmap();
auto& bitmap = layer->currently_edited_bitmap();
GUI::Painter painter(bitmap);
VERIFY(bitmap.bpp() == 32);
const double minimal_radius = 2;