/* * Copyright (c) 2021, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Kernel { class GenericGraphicsAdapter : public RefCounted , public Weakable { public: virtual ~GenericGraphicsAdapter() = default; virtual void initialize_framebuffer_devices() = 0; virtual void enable_consoles() = 0; virtual void disable_consoles() = 0; bool consoles_enabled() const { return m_consoles_enabled; } virtual bool framebuffer_devices_initialized() const = 0; virtual bool modesetting_capable() const = 0; virtual bool double_framebuffering_capable() const = 0; virtual bool vga_compatible() const = 0; virtual ErrorOr get_edid(size_t output_port_index) const = 0; virtual bool try_to_set_resolution(size_t output_port_index, size_t width, size_t height) = 0; virtual bool set_y_offset(size_t output_port_index, size_t y) = 0; protected: GenericGraphicsAdapter() = default; bool m_consoles_enabled { false }; }; }