fxengine/include/render/bitmap.h

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);