summaryrefslogtreecommitdiff
path: root/Kernel/Graphics/BochsGraphicsAdapter.cpp
diff options
context:
space:
mode:
authorSahan Fernando <sahan.h.fernando@gmail.com>2021-06-12 22:30:05 +1000
committerAndreas Kling <kling@serenityos.org>2021-06-25 19:26:30 +0200
commit34e9fa4d3be0284ac120e885ab920bb6024e4f04 (patch)
tree93f68ce4b61cb50f7440d4558b969d8f23341b2a /Kernel/Graphics/BochsGraphicsAdapter.cpp
parentcf1c8eb77862b9ef489619c73d16ace92b0aedf9 (diff)
downloadserenity-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.cpp4
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;