summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-16bit-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/lcd-16bit-common.c')
-rw-r--r--firmware/drivers/lcd-16bit-common.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c
index 1e1548e997..bbac2b295a 100644
--- a/firmware/drivers/lcd-16bit-common.c
+++ b/firmware/drivers/lcd-16bit-common.c
@@ -515,3 +515,21 @@ void ICODE_ATTR lcd_alpha_bitmap_part(const unsigned char *src, int src_x,
515#endif 515#endif
516 } while (--row); 516 } while (--row);
517} 517}
518
519/* Draw a partial bitmap (mono or native) including alpha channel */
520void ICODE_ATTR lcd_bmp_part(const struct bitmap* bm, int src_x, int src_y,
521 int x, int y, int width, int height)
522{
523 int bitmap_stride = STRIDE_MAIN(bm->width, bm->height);
524 if (bm->format == FORMAT_MONO)
525 lcd_mono_bitmap_part(bm->data, src_x, src_y, bitmap_stride, x, y, width, height);
526 else
527 lcd_bitmap_transparent_part((fb_data*)bm->data,
528 src_x, src_y, bitmap_stride, x, y, width, height);
529}
530
531/* Draw a native bitmap with alpha channel */
532void ICODE_ATTR lcd_bmp(const struct bitmap *bmp, int x, int y)
533{
534 lcd_bmp_part(bmp, 0, 0, x, y, bmp->width, bmp->height);
535}