From 66f2ca62469eba4b46e1f19f54dde9476b08d956 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Fri, 30 Apr 2021 09:31:30 +0200 Subject: Debug interrupts, allow to show bmp images --- src/drivers/bmp.cc | 39 +++++++++++++++++++++++++++++++++++++++ src/drivers/bmp.hpp | 18 ++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/drivers/bmp.cc create mode 100644 src/drivers/bmp.hpp (limited to 'src/drivers') diff --git a/src/drivers/bmp.cc b/src/drivers/bmp.cc new file mode 100644 index 0000000..6f9dad6 --- /dev/null +++ b/src/drivers/bmp.cc @@ -0,0 +1,39 @@ +#include "bmp.hpp" +#include "libs/string.hpp" + +#include "drivers/framebuffer.hpp" + +void bmp_draw(u8* bmp_data, int posx, int posy){ + BMP_HEADER header; + memcpy(bmp_data, &header, sizeof(BMP_HEADER)); + if(header.signature!=0x4d42){ + printk("Invalid BMP data\n"); + return; + } + + // Do not forget, each row is 32bits aligned + u32 Bpp=header.bpp/8; + u32 lineW=header.width*Bpp; + while((lineW&0x3)!=0){ + lineW++; + } + + for(u32 y=0;y