1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:07:35 +00:00

Kernel/Graphics: Use DisplayConnector design with generic framebuffers

This commit is contained in:
Liav A 2022-04-30 14:35:22 +03:00 committed by Andreas Kling
parent c27c414ed1
commit f15b93c9a1
13 changed files with 203 additions and 139 deletions

View file

@ -0,0 +1,40 @@
/*
* Copyright (c) 2021-2022, Liav A. <liavalb@hotmail.co.il>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Types.h>
#include <Kernel/Bus/PCI/Device.h>
#include <Kernel/Graphics/Console/Console.h>
#include <Kernel/Graphics/GenericGraphicsAdapter.h>
#include <Kernel/Graphics/VGA/DisplayConnector.h>
#include <Kernel/PhysicalAddress.h>
namespace Kernel {
class VGACompatibleAdapter : public GenericGraphicsAdapter {
public:
virtual bool vga_compatible() const override final { return true; }
protected:
void initialize_display_connector_with_preset_resolution(PhysicalAddress, size_t framebuffer_width, size_t framebuffer_height, size_t framebuffer_pitch);
VGACompatibleAdapter() = default;
// ^GenericGraphicsAdapter
virtual bool modesetting_capable() const override { VERIFY_NOT_REACHED(); }
virtual bool double_framebuffering_capable() const override { VERIFY_NOT_REACHED(); }
virtual bool framebuffer_devices_initialized() const override { return false; }
virtual void initialize_framebuffer_devices() override { }
virtual void enable_consoles() override { }
virtual void disable_consoles() override { }
virtual bool try_to_set_resolution(size_t, size_t, size_t) override { VERIFY_NOT_REACHED(); }
virtual bool set_y_offset(size_t, size_t) override { VERIFY_NOT_REACHED(); }
ErrorOr<ByteBuffer> get_edid(size_t) const override { return Error::from_errno(ENOTSUP); }
RefPtr<GenericDisplayConnector> m_generic_display_connector;
};
}