diff --git a/kernel/framebuffer.h b/kernel/framebuffer.h index e69de29..1c28221 100644 --- a/kernel/framebuffer.h +++ b/kernel/framebuffer.h @@ -0,0 +1,25 @@ +#ifndef FRAMEBUFFER_H +#define FRAMEBUFFER_H + +#include +#include +#include + +typedef struct { + void *base; + uint32_t width; + uint32_t height; + uint32_t pitch; + uint8_t bpp; + bool initialized; +} framebuffer_t; + +void framebuffer_init(framebuffer_t *fb, void *base, uint32_t width, uint32_t height, uint32_t pitch, uint8_t bpp); +uint32_t framebuffer_pack_color(uint8_t r, uint8_t g, uint8_t b, uint8_t a); +void framebuffer_put_pixel(framebuffer_t *fb, uint32_t x, uint32_t y, uint8_t r, uint8_t g, uint8_t b, uint8_t a); +void framebuffer_clear(framebuffer_t *fb, uint8_t r, uint8_t g, uint8_t b); +void framebuffer_fill_rect(framebuffer_t *fb, uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint8_t r, uint8_t g, uint8_t b); +void framebuffer_blit(framebuffer_t *fb, uint32_t dst_x, uint32_t dst_y, const void *src, uint32_t src_w, uint32_t src_h, uint32_t src_pitch); +void framebuffer_test_pattern(framebuffer_t *fb); + +#endif /* FRAMEBUFFER_H */