50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
/* bitmap codé bit à bit
|
|
0 dans layout -> transparent
|
|
1 dans layout -> 1 dans color -> noir
|
|
0 dans color -> blanc */
|
|
|
|
struct bitmap_rich_8
|
|
{
|
|
uint32_t size_px_x; // largeur en pixels
|
|
uint32_t size_px_y; // hauteur en pixels
|
|
uint32_t size_o_y; // taille en octets d'une rangée
|
|
|
|
uint8_t * color; // bitmap monochrome
|
|
uint8_t * layout; // transparence
|
|
};
|
|
typedef struct bitmap_rich_16 bitmap_rich_16;
|
|
|
|
struct bitmap_rich_16
|
|
{
|
|
uint32_t size_px_x;
|
|
uint32_t size_px_y;
|
|
uint32_t size_o_y;
|
|
|
|
uint16_t * color;
|
|
uint16_t * layout;
|
|
};
|
|
typedef struct bitmap_rich_16 bitmap_rich_16;
|
|
|
|
struct bitmap_rich_32
|
|
{
|
|
uint32_t size_px_x;
|
|
uint32_t size_px_y;
|
|
uint32_t size_o_y;
|
|
|
|
uint32_t * color;
|
|
uint32_t * layout;
|
|
};
|
|
typedef struct bitmap_rich_32 bitmap_rich_32;
|
|
|
|
|
|
/* bitmap_get_color_<type>(int x, int y)
|
|
returns a color coded in 2 bytes
|
|
byte 7 -> layout (visible, invisible)
|
|
byte 6 -> color (N || B) */
|
|
|
|
uint8_t bitmap_get_color_8(const bitmap_rich_8 * bmp,uint32_t x, uint32_t y);
|
|
uint8_t bitmap_get_color_16(const bitmap_rich_16 * bmp,uint32_t x, uint32_t y);
|
|
uint8_t bitmap_get_color_32(const bitmap_rich_32 * bmp,uint32_t x, uint32_t y); |