// TODO: Reorganize and make part of this into a limine agnostic API for general purpose graphics use crate::kmain::FRAMEBUFFER; pub fn clear_screen() { { // TODO: setup a proper framebuffer handler let fb_response = FRAMEBUFFER.get_response().get().unwrap(); for fb in fb_response.framebuffers().unwrap() { trace!("Framebuffer {}x{}", fb.width, fb.height); trace!("{}", fb.memory_model); trace!("{}", fb.bpp); let mut count = 0; let total = fb.width * fb.height * 3; while count != total { unsafe { let fb_ptr = fb.address.as_mut_ptr().unwrap(); *fb_ptr.offset((count).try_into().unwrap()) = 0x00; *fb_ptr.offset((count + 1).try_into().unwrap()) = 0x00; *fb_ptr.offset((count + 2).try_into().unwrap()) = 0x00; } count += 3; } } } }