mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-08 12:19:37 +03:00
LibGUI: Window icons no longer need to be backed by shbufs
This allows us to remove Window::create_shared_bitmap() entirely.
This commit is contained in:
parent
333366a99d
commit
71f50b6e94
Notes:
sideshowbarker
2024-07-18 23:48:00 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/71f50b6e948
@ -710,18 +710,6 @@ void Window::flip(const Vector<Gfx::IntRect, 32>& dirty_rects)
|
|||||||
m_back_store->bitmap().set_volatile();
|
m_back_store->bitmap().set_volatile();
|
||||||
}
|
}
|
||||||
|
|
||||||
RefPtr<Gfx::Bitmap> Window::create_shared_bitmap(Gfx::BitmapFormat format, const Gfx::IntSize& size)
|
|
||||||
{
|
|
||||||
ASSERT(WindowServerConnection::the().server_pid());
|
|
||||||
ASSERT(!size.is_empty());
|
|
||||||
size_t pitch = Gfx::Bitmap::minimum_pitch(size.width(), format);
|
|
||||||
size_t size_in_bytes = size.height() * pitch;
|
|
||||||
auto shared_buffer = SharedBuffer::create_with_size(size_in_bytes);
|
|
||||||
ASSERT(shared_buffer);
|
|
||||||
shared_buffer->share_with(WindowServerConnection::the().server_pid());
|
|
||||||
return Gfx::Bitmap::create_with_shared_buffer(format, *shared_buffer, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
OwnPtr<WindowBackingStore> Window::create_backing_store(const Gfx::IntSize& size)
|
OwnPtr<WindowBackingStore> Window::create_backing_store(const Gfx::IntSize& size)
|
||||||
{
|
{
|
||||||
auto format = m_has_alpha_channel ? Gfx::BitmapFormat::RGBA32 : Gfx::BitmapFormat::RGB32;
|
auto format = m_has_alpha_channel ? Gfx::BitmapFormat::RGBA32 : Gfx::BitmapFormat::RGB32;
|
||||||
@ -759,7 +747,7 @@ void Window::set_icon(const Gfx::Bitmap* icon)
|
|||||||
|
|
||||||
Gfx::IntSize icon_size = icon ? icon->size() : Gfx::IntSize(16, 16);
|
Gfx::IntSize icon_size = icon ? icon->size() : Gfx::IntSize(16, 16);
|
||||||
|
|
||||||
m_icon = create_shared_bitmap(Gfx::BitmapFormat::RGBA32, icon_size);
|
m_icon = Gfx::Bitmap::create(Gfx::BitmapFormat::RGBA32, icon_size);
|
||||||
ASSERT(m_icon);
|
ASSERT(m_icon);
|
||||||
if (icon) {
|
if (icon) {
|
||||||
Painter painter(*m_icon);
|
Painter painter(*m_icon);
|
||||||
|
@ -223,7 +223,6 @@ private:
|
|||||||
void server_did_destroy();
|
void server_did_destroy();
|
||||||
|
|
||||||
OwnPtr<WindowBackingStore> create_backing_store(const Gfx::IntSize&);
|
OwnPtr<WindowBackingStore> create_backing_store(const Gfx::IntSize&);
|
||||||
RefPtr<Gfx::Bitmap> create_shared_bitmap(Gfx::BitmapFormat, const Gfx::IntSize&);
|
|
||||||
void set_current_backing_store(WindowBackingStore&, bool flush_immediately = false);
|
void set_current_backing_store(WindowBackingStore&, bool flush_immediately = false);
|
||||||
void flip(const Vector<Gfx::IntRect, 32>& dirty_rects);
|
void flip(const Vector<Gfx::IntRect, 32>& dirty_rects);
|
||||||
void force_update();
|
void force_update();
|
||||||
|
Loading…
Reference in New Issue
Block a user