roxy_loader/
framebuffer.rs1use anyhow::Result;
2use roxy_loader_api::framebuffer::Framebuffer;
3use uefi::proto::console::gop::GraphicsOutput;
4
5use crate::utils::get_and_open_protocol;
6
7pub fn new_framebuffer() -> Result<Framebuffer> {
8 let mut gop = get_and_open_protocol::<GraphicsOutput>()?;
9
10 let mode = gop.current_mode_info();
11 let mut fb = gop.frame_buffer();
12
13 Ok(Framebuffer::new(
14 fb.as_mut_ptr(),
15 fb.size(),
16 mode.stride(),
17 mode.pixel_format(),
18 mode.resolution(),
19 ))
20}