Serenity Operating System
1/*
2 * Copyright (c) 2021, Sahan Fernando <sahan.h.fernando@gmail.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <Kernel/Graphics/Console/GenericFramebufferConsole.h>
10
11namespace Kernel::Graphics {
12
13class ContiguousFramebufferConsole final : public GenericFramebufferConsole {
14public:
15 static NonnullLockRefPtr<ContiguousFramebufferConsole> initialize(PhysicalAddress, size_t width, size_t height, size_t pitch);
16
17 virtual void set_resolution(size_t width, size_t height, size_t pitch) override;
18 virtual void flush(size_t, size_t, size_t, size_t) override { }
19
20private:
21 virtual u8* framebuffer_data() override
22 {
23 return m_framebuffer_region->vaddr().as_ptr();
24 }
25 OwnPtr<Memory::Region> m_framebuffer_region;
26 ContiguousFramebufferConsole(PhysicalAddress, size_t width, size_t height, size_t pitch);
27 PhysicalAddress m_framebuffer_address;
28};
29
30}