1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:57:44 +00:00

GraphicsBitmap: create_wrapper() should take pitch as a parameter

We shouldn't assume that the pitch of some arbitrary bitmap memory that
we're wrapping is going to be 16-byte aligned. Instead, just take the
pitch as a parameter.

Also update WindowServer to pass the pitch to the framebuffer bitmaps.
This commit is contained in:
Andreas Kling 2019-08-19 13:29:19 +02:00
parent d11d847161
commit 7038935f74
4 changed files with 13 additions and 9 deletions

View file

@ -60,12 +60,15 @@ WSCompositor::WSCompositor()
void WSCompositor::init_bitmaps()
{
auto size = WSScreen::the().size();
auto& screen = WSScreen::the();
auto size = screen.size();
m_front_bitmap = GraphicsBitmap::create_wrapper(GraphicsBitmap::Format::RGB32, size, WSScreen::the().scanline(0));
m_front_bitmap = GraphicsBitmap::create_wrapper(GraphicsBitmap::Format::RGB32, size, screen.pitch(), screen.scanline(0));
ASSERT(m_screen_can_set_buffer);
if (m_screen_can_set_buffer)
m_back_bitmap = GraphicsBitmap::create_wrapper(GraphicsBitmap::Format::RGB32, size, WSScreen::the().scanline(size.height()));
m_back_bitmap = GraphicsBitmap::create_wrapper(GraphicsBitmap::Format::RGB32, size, screen.pitch(), screen.scanline(size.height()));
else
m_back_bitmap = GraphicsBitmap::create(GraphicsBitmap::Format::RGB32, size);