23 lines
655 B
C
23 lines
655 B
C
#include <gint/display.h>
|
|
#include <render/bitmap.h>
|
|
|
|
inline uint8_t bitmap_get_pixel_r(const bitmap_rich * bmp, uint32_t x, uint32_t y)
|
|
{
|
|
if (x >= bmp->size_px_x || y >= bmp->size_px_y)
|
|
return 0;
|
|
|
|
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 );
|
|
}
|
|
|
|
|
|
void bitmap_display_pixel_r(const bitmap_rich * bmp, uint32_t bmp_x, uint32_t bmp_y, uint32_t x, uint32_t y)
|
|
{
|
|
uint8_t color = bitmap_get_pixel_r(bmp, bmp_x, bmp_y);
|
|
if (color >> 1)
|
|
dpixel(x, y, 3 * (color % 2));
|
|
}
|