diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index 3aa833d6a1..76c4260ec1 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c @@ -513,11 +513,13 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string, void LCDFN(bmp_part)(const struct bitmap* bm, int src_x, int src_y, int x, int y, int width, int height) { - if (bm->format == FORMAT_MONO) - LCDFN(mono_bitmap_part)((FBFN(data)*)(bm->data), +#if LCDM(DEPTH) > 1 + if (bm->format != FORMAT_MONO) + LCDFN(bitmap_part)((FBFN(data)*)(bm->data), src_x, src_y, THIS_STRIDE(bm->width, bm->height), x, y, width, height); else - LCDFN(bitmap_part)((FBFN(data)*)(bm->data), +#endif + LCDFN(mono_bitmap_part)(bm->data, src_x, src_y, THIS_STRIDE(bm->width, bm->height), x, y, width, height); } diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index ad579820ad..76b8b09635 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -546,14 +546,13 @@ extern void lcd_bitmap_transparent_part(const fb_data *src, int height); extern void lcd_bitmap_transparent(const fb_data *src, int x, int y, int width, int height); -extern void lcd_bmp_part(const struct bitmap* bm, int src_x, int src_y, - int x, int y, int width, int height); -extern void lcd_bmp(const struct bitmap* bm, int x, int y); #else /* LCD_DEPTH == 1 */ #define lcd_mono_bitmap lcd_bitmap #define lcd_mono_bitmap_part lcd_bitmap_part #endif /* LCD_DEPTH */ - +extern void lcd_bmp_part(const struct bitmap* bm, int src_x, int src_y, + int x, int y, int width, int height); +extern void lcd_bmp(const struct bitmap* bm, int x, int y); #endif /* HAVE_LCD_BITMAP */