Kernel: Implement fast scrolling for TTY

This commit is contained in:
2024-06-28 23:15:03 +03:00
parent 010c2c934b
commit 42237a3bc8
6 changed files with 46 additions and 6 deletions

View File

@@ -17,6 +17,10 @@ namespace Kernel
void set_pixel(uint32_t x, uint32_t y, uint32_t rgb);
// positive rows -> empty pixels on bottom
// negative rows -> empty pixels on top
void scroll(int32_t rows, uint32_t rgb);
void sync_pixels_full();
void sync_pixels_linear(uint32_t first_pixel, uint32_t pixel_count);
void sync_pixels_rectangle(uint32_t top_right_x, uint32_t top_right_y, uint32_t width, uint32_t height);

View File

@@ -15,6 +15,7 @@ namespace Kernel
virtual uint32_t height() const override { return m_framebuffer_device->height() / font().height(); }
virtual void putchar_at(uint16_t, uint32_t, uint32_t, Color, Color) override;
virtual bool scroll(Color) override;
virtual void clear(Color) override;
virtual void set_cursor_position(uint32_t, uint32_t) override;

View File

@@ -31,6 +31,7 @@ namespace Kernel
virtual uint32_t height() const = 0;
virtual void putchar_at(uint16_t, uint32_t, uint32_t, Color, Color) = 0;
virtual bool scroll(Color) { return false; }
virtual void clear(Color) = 0;
virtual void set_cursor_position(uint32_t, uint32_t) = 0;