#include "framebuffer.hpp" #include "core/paging.hpp" #include "libs/string.hpp" FB_CFG fb_cfg; void framebuffer_init(FB_CFG config){ fb_cfg=config; } void framebuffer_draw(FB_PIXEL p){ u8 *pixel=(u8*)(fb_cfg.location+p.x*(fb_cfg.depth/8)+p.y*fb_cfg.pitch); PAGING_MAP(pixel); pixel[0]=p.r; pixel[1]=p.g; pixel[2]=p.b; if(fb_cfg.depth==32) pixel[3]=p.a; } void framebuffer_scrollup(u32 npixel){ u64 start=fb_cfg.location+npixel*fb_cfg.pitch; u64 amount=fb_cfg.pitch*(fb_cfg.height-npixel); memcpy((void*)start,(void*)fb_cfg.location,amount); } void framebuffer_clear(){ memset((void*)fb_cfg.location, 0, fb_cfg.pitch*fb_cfg.height); }