1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:48:11 +00:00

WindowServer: Coordinate double-buffering with the BochsVGA card.

Use the BochsVGA card's virtual-height + virtual-y features to implement
a "hardware double buffering" type scheme.

This is a performance degradation since we now draw a bunch more than before.
But there's also no tearing or cursor flickering. I'm gonna commit this and
try to improve upon it. :^)
This commit is contained in:
Andreas Kling 2019-02-07 08:53:57 +01:00
parent 1f159eaab0
commit 443d1c2237
6 changed files with 52 additions and 15 deletions

View file

@ -59,7 +59,7 @@ void WSScreen::on_receive_mouse_data(int dx, int dy, bool left_button, bool righ
WSMessageLoop::the().post_message(&WSWindowManager::the(), move(message));
}
if (m_cursor_location != prev_location || prev_left_button != left_button)
WSWindowManager::the().draw_cursor();
WSWindowManager::the().invalidate_cursor();
}
void WSScreen::on_receive_keyboard_data(Keyboard::Event kernel_event)