Kernel: Restructure terminal initialization

This is still very ugly and will be rewritten in the future :D
This commit is contained in:
2025-04-18 01:19:59 +03:00
parent 439fb57d88
commit 554b13ac50
11 changed files with 85 additions and 53 deletions

View File

@@ -9,10 +9,10 @@ namespace Kernel
class FramebufferTerminalDriver final : public TerminalDriver
{
public:
static FramebufferTerminalDriver* create(BAN::RefPtr<FramebufferDevice>);
static BAN::ErrorOr<BAN::RefPtr<FramebufferTerminalDriver>> create(BAN::RefPtr<FramebufferDevice>);
virtual uint32_t width() const override { return m_framebuffer_device->width() / font().width(); }
virtual uint32_t height() const override { return m_framebuffer_device->height() / font().height(); }
virtual uint32_t width() const override { return m_framebuffer_device->width() / m_font.width(); }
virtual uint32_t height() const override { return m_framebuffer_device->height() / m_font.height(); }
virtual void putchar_at(uint16_t, uint32_t, uint32_t, Color, Color) override;
virtual bool scroll(Color) override;
@@ -20,6 +20,11 @@ namespace Kernel
virtual void set_cursor_position(uint32_t, uint32_t) override;
virtual bool has_font() const override { return true; }
virtual void set_font(const LibFont::Font& font) override { m_font = font; };
virtual const LibFont::Font& font() const override { return m_font; };
private:
FramebufferTerminalDriver(BAN::RefPtr<FramebufferDevice> framebuffer_device)
: m_framebuffer_device(framebuffer_device)
@@ -27,6 +32,7 @@ namespace Kernel
private:
BAN::RefPtr<FramebufferDevice> m_framebuffer_device;
LibFont::Font m_font;
static constexpr Color s_cursor_color = TerminalColor::BRIGHT_WHITE;
};