diff options
author | Sahan Fernando <sahan.h.fernando@gmail.com> | 2021-06-12 22:30:05 +1000 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-06-25 19:26:30 +0200 |
commit | 34e9fa4d3be0284ac120e885ab920bb6024e4f04 (patch) | |
tree | 93f68ce4b61cb50f7440d4558b969d8f23341b2a /Kernel/Graphics/BochsGraphicsAdapter.cpp | |
parent | cf1c8eb77862b9ef489619c73d16ace92b0aedf9 (diff) | |
download | serenity-34e9fa4d3be0284ac120e885ab920bb6024e4f04.zip |
Kernel: Abstract FramebufferConsole away from contiguous physical range
Currently, Kernel::Graphics::FramebufferConsole is written assuming that
the underlying framebuffer memory exists in physically contiguous
memory. There are a bunch of framebuffer devices that would need to use
the components of FramebufferConsole (in particular access to the kernel
bitmap font rendering logic). To reduce code duplication, framebuffer
console has been split into two parts, the abstract
GenericFramebufferConsole class which does the rendering, and the
ContiguousFramebufferConsole class which contains all logic related to
managing the underling vm object.
Also, a new flush method has been added to the class, to support devices
that require an extra flush step to render.
Diffstat (limited to 'Kernel/Graphics/BochsGraphicsAdapter.cpp')
-rw-r--r-- | Kernel/Graphics/BochsGraphicsAdapter.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Kernel/Graphics/BochsGraphicsAdapter.cpp b/Kernel/Graphics/BochsGraphicsAdapter.cpp index 5d764e2a05..bf8aa1300a 100644 --- a/Kernel/Graphics/BochsGraphicsAdapter.cpp +++ b/Kernel/Graphics/BochsGraphicsAdapter.cpp @@ -10,7 +10,7 @@ #include <Kernel/Debug.h> #include <Kernel/Graphics/Bochs.h> #include <Kernel/Graphics/BochsGraphicsAdapter.h> -#include <Kernel/Graphics/Console/FramebufferConsole.h> +#include <Kernel/Graphics/Console/ContiguousFramebufferConsole.h> #include <Kernel/Graphics/GraphicsManagement.h> #include <Kernel/IO.h> #include <Kernel/PCI/Access.h> @@ -55,7 +55,7 @@ UNMAP_AFTER_INIT BochsGraphicsAdapter::BochsGraphicsAdapter(PCI::Address pci_add , m_mmio_registers(PCI::get_BAR2(pci_address) & 0xfffffff0) { // We assume safe resolutio is 1024x768x32 - m_framebuffer_console = Graphics::FramebufferConsole::initialize(PhysicalAddress(PCI::get_BAR0(pci_address) & 0xfffffff0), 1024, 768, 1024 * sizeof(u32)); + m_framebuffer_console = Graphics::ContiguousFramebufferConsole::initialize(PhysicalAddress(PCI::get_BAR0(pci_address) & 0xfffffff0), 1024, 768, 1024 * sizeof(u32)); // FIXME: This is a very wrong way to do this... GraphicsManagement::the().m_console = m_framebuffer_console; |