From e3428003690a483538c083cd42060ceb9602a39c Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sun, 9 May 2021 18:12:22 +0200 Subject: [PATCH] Bootloader now has a background --- .../480x272/bootloader/bmp_background.png | Bin 0 -> 5813 bytes .../targets/horus/bootloader/boot_menu.cpp | 33 +++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 radio/src/bitmaps/480x272/bootloader/bmp_background.png diff --git a/radio/src/bitmaps/480x272/bootloader/bmp_background.png b/radio/src/bitmaps/480x272/bootloader/bmp_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b1a48409c652f8e76d93fd5a478e07db60bd95 GIT binary patch literal 5813 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 literal 0 HcmV?d00001 diff --git a/radio/src/targets/horus/bootloader/boot_menu.cpp b/radio/src/targets/horus/bootloader/boot_menu.cpp index ae0d771df..a4ae513d1 100644 --- a/radio/src/targets/horus/bootloader/boot_menu.cpp +++ b/radio/src/targets/horus/bootloader/boot_menu.cpp @@ -12,6 +12,11 @@ const uint8_t __bmp_usb_plugged_rle[] { }; RLEBitmap BMP_USB_PLUGGED(BMP_ARGB4444, __bmp_usb_plugged_rle); +const uint8_t __bmp_background_rle[] { +#include "bmp_background.lbm" +}; +RLEBitmap BMP_BACKGROUND(BMP_ARGB4444, __bmp_background_rle); + const uint8_t LBM_FLASH[] = { #include "icon_flash.lbm" }; @@ -63,6 +68,31 @@ static void bootloaderDrawFooter() lcd->drawSolidFilledRect(28, 234, 422, 2, BL_FOREGROUND); } +static void bootloaderDrawBackground() +{ + // we have plenty of memory, let's cache that background + static BitmapBuffer* _background = nullptr; + + if (!_background) { + _background = new BitmapBuffer(BMP_RGB565, LCD_W, LCD_H); + + for (int i=0; idrawBitmap(i, j, &BMP_BACKGROUND); + } + } + _background->drawFilledRect(0, 0, LCD_W, LCD_H, SOLID, + COLOR2FLAGS(BLACK), OPACITY(4)); + } + + if (_background) { + lcd->drawBitmap(0, 0, _background); + } + else { + lcd->clear(BL_BACKGROUND); + } +} + void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) { // shows current layer on LCD @@ -70,7 +100,8 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) // swap back & front buffers lcdNextLayer(); - lcd->clear(BL_BACKGROUND); + + bootloaderDrawBackground(); if (st == ST_START) { bootloaderDrawTitle(88, BOOTLOADER_TITLE);