Bitmap
bitmap.c
draw_bitmap
Arguments:
| Argument | Position | Type |
|---|---|---|
| position | 1 | Point |
| data | 2 | const uint8_t *data |
How it works:
[Takes the input] –> [Fetches the file_header and info_header from the data] –> [Checks the file_header->bfType to see if it is type BM (HEX: 4D42), if not, it does nothing] –> [Calculates the row size and then gets the pixel data] –> [Draws every pixel using the vbe_putpixel function]
Limits of draw_bitmap:
- Does not support Alpha (Defaults to opaque)
Also subject to change (。◕‿◕。)
bitmap.h
BITMAPFILEHEADER
file_header is type BITMAPFILEHEADER which is defined here:
typedef struct {
uint16_t bfType;
uint32_t bfSize;
uint16_t bfReserved1;
uint16_t bfReserved2;
uint32_t bfOffBits;
} BITMAPFILEHEADER;
BITMAPINFOHEADER
file_header is type BITMAPFILEHEADER which is defined here:
typedef struct {
uint32_t biSize;
int32_t biWidth;
int32_t biHeight;
uint16_t biPlanes;
uint16_t biBitCount;
uint32_t biCompression;
uint32_t biSizeImage;
int32_t biXPelsPerMeter;
int32_t biYPelsPerMeter;
uint32_t biClrUsed;
uint32_t biClrImportant;
} BITMAPINFOHEADER;