mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:32:45 +00:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									cf1c8eb778
								
							
						
					
					
						commit
						34e9fa4d3b
					
				
					 14 changed files with 141 additions and 87 deletions
				
			
		|  | @ -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; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sahan Fernando
						Sahan Fernando