roxy_loader/framebuffer.rs
1use 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(fb.as_mut_ptr(), fb.size(), mode.stride()))
14}