set bitmap_fct inline and write implementation

This commit is contained in:
milang 2019-08-29 10:06:06 +02:00
parent 2ac26a1f9e
commit 8dd69caa7d
No known key found for this signature in database
GPG Key ID: D287C9D6C33D9035
2 changed files with 27 additions and 5 deletions

View File

@ -45,6 +45,6 @@ typedef struct bitmap_rich_32 bitmap_rich_32;
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);
inline uint8_t bitmap_get_color_8(const bitmap_rich_8 * bmp,uint32_t x, uint32_t y);
inline uint8_t bitmap_get_color_16(const bitmap_rich_16 * bmp,uint32_t x, uint32_t y);
inline uint8_t bitmap_get_color_32(const bitmap_rich_32 * bmp,uint32_t x, uint32_t y);

View File

@ -1,6 +1,28 @@
#include <bitmap.h>
uint8_t bitmap_get_color_8(const bitmap_rich_8 * bmp, uint32_t x, uint32_t y)
inline uint8_t bitmap_get_color_8(const bitmap_rich_8 * bmp, uint32_t x, uint32_t y)
{
uint32_t indice=x*bitmap
if (x >= bmp->size_px_x || y >= bmp->size_px_y)
const uint32_t indice = y * bmp.size_o_y + x >> 3;
const uint32_t numero_bit = 7 - x % 8;
return ( bmp.layout[indice] | 1 << numero_bit ) << 1 + ( bmp.color[indice] | 1 << numero_bit );
}
inline uint8_t bitmap_get_color_16(const bitmap_rich_16 * bmp, uint32_t x, uint32_t y)
{
if (x >= bmp->size_px_x || y >= bmp->size_px_y)
const uint32_t indice = y * bmp.size_o_y + x >> 4;
const uint32_t numero_bit = 15 - x % 16;
return ( bmp.layout[indice] | 1 << numero_bit ) << 1 + ( bmp.color[indice] | 1 << numero_bit );
}
inline uint8_t bitmap_get_color_32(const bitmap_rich_32 * bmp, uint32_t x, uint32_t y)
{
if (x >= bmp->size_px_x || y >= bmp->size_px_y)
const uint32_t indice = y * bmp.size_o_y + x >> 5;
const uint32_t numero_bit = 31 - x % 32;
return ( bmp.layout[indice] | 1 << numero_bit ) << 1 + ( bmp.color[indice] | 1 << numero_bit );
}