blob: e5414583b10974e4bf69550355fbf2c8c8ae4b46 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// linear framebuffer type shi you feel me?
// see: https://wiki.osdev.org/Limine_Bare_Bones
const limine = @import("limine.zig");
pub const Framebuffer = limine.Framebuffer;
// the request placed in .limine_requests so the loader finds and fills it
// idk why this sounds vaguely erotic, like yeah fill me harder lol
export var request: limine.FramebufferRequest linksection(".limine_requests") = .{};
// the response pointer is written by limine before we run, so read it through a
// volatile pointer or the optimizer assumes its still null
pub fn get() ?*Framebuffer {
const req: *volatile limine.FramebufferRequest = &request;
const resp = req.response orelse return null;
if (resp.framebuffer_count == 0) return null;
return resp.framebuffers.?[0];
}
|