/*
    * Framebuffer.hpp
    * Framebuffer information storage
    * Copyright (c) 2025 Daniel Hammer
*/

#pragma once
#include <cstdint>
#include <Boot/BootInfo.hpp>

namespace Graphics::Framebuffer {

    void Initialize(const montauk::boot::Framebuffer& framebuffer);

    uint32_t* GetBase();
    uint64_t  GetWidth();
    uint64_t  GetHeight();
    uint64_t  GetPitch();

    void Set(uint32_t* base, uint64_t width, uint64_t height, uint64_t pitch);
    uint64_t GetPhysBase();

    void MapWriteCombining();

};
