mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-13 01:59:14 +03:00
PixelPaint: Keep track of and expose the type of the edited bitmap
This can be either the content bitmap or the mask bitmap.
This commit is contained in:
parent
a180b5f442
commit
96829565d8
Notes:
sideshowbarker
2024-07-17 17:47:00 +09:00
Author: https://github.com/TobyAsE Commit: https://github.com/SerenityOS/serenity/commit/96829565d8 Pull-request: https://github.com/SerenityOS/serenity/pull/12934
@ -179,4 +179,25 @@ void Layer::create_mask()
|
||||
update_cached_bitmap();
|
||||
}
|
||||
|
||||
Gfx::Bitmap& Layer::currently_edited_bitmap()
|
||||
{
|
||||
switch (edit_mode()) {
|
||||
case EditMode::Mask:
|
||||
if (is_masked())
|
||||
return *mask_bitmap();
|
||||
[[fallthrough]];
|
||||
case EditMode::Content:
|
||||
return content_bitmap();
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
void Layer::set_edit_mode(Layer::EditMode mode)
|
||||
{
|
||||
if (m_edit_mode == mode)
|
||||
return;
|
||||
|
||||
m_edit_mode = mode;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -74,6 +74,16 @@ public:
|
||||
|
||||
bool is_masked() { return !m_mask_bitmap.is_null(); }
|
||||
|
||||
enum class EditMode {
|
||||
Content,
|
||||
Mask,
|
||||
};
|
||||
|
||||
EditMode edit_mode() { return m_edit_mode; }
|
||||
void set_edit_mode(EditMode mode);
|
||||
|
||||
Gfx::Bitmap& currently_edited_bitmap();
|
||||
|
||||
private:
|
||||
Layer(Image&, NonnullRefPtr<Gfx::Bitmap>, String name);
|
||||
|
||||
@ -90,6 +100,8 @@ private:
|
||||
|
||||
int m_opacity_percent { 100 };
|
||||
|
||||
EditMode m_edit_mode { EditMode::Content };
|
||||
|
||||
void update_cached_bitmap();
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user