diff --git a/radio/src/bitmaps/480x272/CMakeLists.txt b/radio/src/bitmaps/480x272/CMakeLists.txt index 9432649ad..a1458053a 100644 --- a/radio/src/bitmaps/480x272/CMakeLists.txt +++ b/radio/src/bitmaps/480x272/CMakeLists.txt @@ -17,8 +17,6 @@ set(BITMAP_LZ4_ARGS ${BITMAP_ARGS} --lz4) set(MASK_LZ4_ARGS ${MASK_ARGS} --lz4) add_bitmaps_target(${BITMAP_TARGET_PREFIX}_splash_logo "${RADIO_SRC_DIR}/bitmaps/480x272/splash_logo.png" "4/4/4/4" "${BITMAP_LZ4_ARGS}") -add_bitmaps_target(${BITMAP_TARGET_PREFIX}_splash_bg "${RADIO_SRC_DIR}/bitmaps/480x272/splash_bg.png" "4/4/4/4" "${BITMAP_LZ4_ARGS}") -add_bitmaps_target(${BITMAP_TARGET_PREFIX}_splash_bg2 "${RADIO_SRC_DIR}/bitmaps/480x272/splash_bg2.png" "4/4/4/4" "${BITMAP_LZ4_ARGS}") add_bitmaps_target(${BITMAP_TARGET_PREFIX}_button_bitmaps "${RADIO_SRC_DIR}/bitmaps/480x272/button/alpha_*.png" "4/4/4/4" "${BITMAP_LZ4_ARGS}") add_bitmaps_target(${BITMAP_TARGET_PREFIX}_masks "${RADIO_SRC_DIR}/bitmaps/480x272/mask_*.png" 8bits "${MASK_LZ4_ARGS}") add_bitmaps_target(${BITMAP_TARGET_PREFIX}_slider_masks "${RADIO_SRC_DIR}/bitmaps/480x272/slider/*.png" 8bits "${MASK_LZ4_ARGS}") @@ -33,8 +31,6 @@ add_custom_target(${BITMAP_TARGET_PREFIX}_bitmaps) add_dependencies(${BITMAP_TARGET_PREFIX}_bitmaps ${BITMAP_TARGET_PREFIX}_splash_logo - ${BITMAP_TARGET_PREFIX}_splash_bg - ${BITMAP_TARGET_PREFIX}_splash_bg2 ${BITMAP_TARGET_PREFIX}_button_bitmaps ${BITMAP_TARGET_PREFIX}_masks ${BITMAP_TARGET_PREFIX}_slider_masks diff --git a/radio/src/bitmaps/480x272/bootloader/bmp_background.png b/radio/src/bitmaps/480x272/bootloader/bmp_background.png deleted file mode 100644 index b2b1a4840..000000000 Binary files a/radio/src/bitmaps/480x272/bootloader/bmp_background.png and /dev/null differ diff --git a/radio/src/bitmaps/480x272/splash_bg.png b/radio/src/bitmaps/480x272/splash_bg.png deleted file mode 100644 index b2b1a4840..000000000 Binary files a/radio/src/bitmaps/480x272/splash_bg.png and /dev/null differ diff --git a/radio/src/gui/colorlcd/splash.cpp b/radio/src/gui/colorlcd/splash.cpp index a4547e72e..7c13ff445 100644 --- a/radio/src/gui/colorlcd/splash.cpp +++ b/radio/src/gui/colorlcd/splash.cpp @@ -19,19 +19,48 @@ * GNU General Public License for more details. */ -#include "opentx.h" - #if defined(SPLASH) -const uint8_t __bmp_splash_bg[] { -#include "splash_bg.lbm" -}; +#include "opentx.h" +#include "stamp.h" -const uint8_t __bmp_splash_logo[] { +#if defined(VERSION_TAG) +const std::string ver_str = "" VERSION_TAG; +const std::string nam_str = "" CODENAME; +#if LCD_W > LCD_H +#define TXT_Y 204 +#else +#define TXT_Y 404 +#endif +#else +const std::string ver_str = "" VERSION; +const std::string nam_str = "" VERSION_SUFFIX; +const std::string git_str = "(" GIT_STR ")"; +#if LCD_W > LCD_H +#define TXT_Y 180 +#else +#define TXT_Y 380 +#endif +#endif + +#if LCD_W > LCD_H +#define TXT_X (LCD_W * 4 / 5) +#define IMG_X (LCD_W / 3) +#define IMG_Y (LCD_H / 2) +#else +#define TXT_X (LCD_W / 2) +#define IMG_X (LCD_W / 2) +#define IMG_Y (LCD_H * 2 / 5) +#endif + +#define BK_COLOR COLOR2FLAGS(BLACK) +#define TXT_COLOR COLOR2FLAGS(RGB(128, 128, 128)) + +const uint8_t __bmp_splash_logo[]{ #include "splash_logo.lbm" }; -void draw_splash_cb(lv_event_t * e) +void draw_splash_cb(lv_event_t* e) { auto draw_ctx = lv_event_get_draw_ctx(e); auto splashImg = (BitmapBuffer*)lv_event_get_user_data(e); @@ -43,13 +72,13 @@ void draw_splash_cb(lv_event_t * e) lv_draw_img_dsc_init(&img_dsc); lv_area_t coords; - coords.x1 = (LCD_W/2) - (splashImg->width()/2); - coords.y1 = (LCD_H/2) - (splashImg->height()/2); - coords.x2 = coords.x1 + splashImg->width()-1; - coords.y2 = coords.y1 + splashImg->height()-1; + coords.x1 = (LCD_W / 2) - (splashImg->width() / 2); + coords.y1 = (LCD_H / 2) - (splashImg->height() / 2); + coords.x2 = coords.x1 + splashImg->width() - 1; + coords.y2 = coords.y1 + splashImg->height() - 1; lv_draw_img_decoded(draw_ctx, &img_dsc, &coords, - (const uint8_t *)splashImg->getData(), + (const uint8_t*)splashImg->getData(), LV_IMG_CF_TRUE_COLOR); } } @@ -63,26 +92,29 @@ void drawSplash() // try splash from SD card first if (loadSplashImg && splashImg == nullptr) { if (!sdMounted()) sdInit(); - splashImg = BitmapBuffer::loadBitmap(BITMAPS_PATH "/" SPLASH_FILE, BMP_RGB565); + splashImg = + BitmapBuffer::loadBitmap(BITMAPS_PATH "/" SPLASH_FILE, BMP_RGB565); loadSplashImg = false; if (splashImg == nullptr) { splashImg = new BitmapBuffer(BMP_RGB565, LCD_W, LCD_H); - BitmapBuffer* splashBg = new LZ4Bitmap(BMP_ARGB4444, __bmp_splash_bg); + splashImg->clear(BK_COLOR); BitmapBuffer* splashLogo = new LZ4Bitmap(BMP_ARGB4444, __bmp_splash_logo); - for (int i=0; iwidth()) { - for (int j=0; jheight()) { - splashImg->drawBitmap(i, j, splashBg); - } - } - splashImg->drawBitmap((LCD_W/2) - (splashLogo->width()/2), - (LCD_H/2) - (splashLogo->height()/2), - splashLogo); + splashImg->drawBitmap(IMG_X - (splashLogo->width() / 2), + IMG_Y - (splashLogo->height() / 2), splashLogo); + splashImg->drawText(TXT_X, TXT_Y, ver_str.c_str(), TXT_COLOR | CENTERED); + splashImg->drawText(TXT_X, TXT_Y + 24, nam_str.c_str(), + TXT_COLOR | CENTERED); +#if !defined(VERSION_TAG) + splashImg->drawText(TXT_X, TXT_Y + 48, git_str.c_str(), + TXT_COLOR | CENTERED); +#endif } splashScreen = window_create(nullptr); if (splashScreen) { - lv_obj_add_event_cb(splashScreen, draw_splash_cb, LV_EVENT_DRAW_MAIN, splashImg); + lv_obj_add_event_cb(splashScreen, draw_splash_cb, LV_EVENT_DRAW_MAIN, + splashImg); } } diff --git a/radio/src/targets/horus/bootloader/boot_menu.cpp b/radio/src/targets/horus/bootloader/boot_menu.cpp index 765a7d609..9b7e00b4d 100644 --- a/radio/src/targets/horus/bootloader/boot_menu.cpp +++ b/radio/src/targets/horus/bootloader/boot_menu.cpp @@ -40,11 +40,6 @@ const uint8_t __bmp_usb_plugged[] { }; LZ4Bitmap BMP_USB_PLUGGED(BMP_ARGB4444, __bmp_usb_plugged); -const uint8_t __bmp_background[] { -#include "bmp_background.lbm" -}; -LZ4Bitmap BMP_BACKGROUND(BMP_ARGB4444, __bmp_background); - #define BL_GREEN COLOR2FLAGS(RGB(73, 219, 62)) #define BL_RED COLOR2FLAGS(RGB(229, 32, 30)) #define BL_BACKGROUND COLOR2FLAGS(BLACK) @@ -71,28 +66,7 @@ static void bootloaderDrawFooter() 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, bg_bmp); - } - } - } - - if (_background) { - lcd->drawBitmap(0, 0, _background); - lcd->drawFilledRect(0, 0, LCD_W, LCD_H, SOLID, - COLOR2FLAGS(BLACK), OPACITY(4)); - } - else { - lcd->clear(BL_BACKGROUND); - } + lcd->clear(BL_BACKGROUND); } void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) diff --git a/radio/src/targets/nv14/bootloader/boot_menu.cpp b/radio/src/targets/nv14/bootloader/boot_menu.cpp index 590b276ae..1280f0223 100644 --- a/radio/src/targets/nv14/bootloader/boot_menu.cpp +++ b/radio/src/targets/nv14/bootloader/boot_menu.cpp @@ -35,7 +35,6 @@ #define USB_SW_TO_INTERNAL_MODULE() GPIO_SetBits(USB_SW_GPOIO, USB_SW_PIN); #define USB_SW_TO_MCU() GPIO_ResetBits(USB_SW_GPOIO, USB_SW_PIN); -#define SELECTED_COLOR (INVERS | COLOR_THEME_SECONDARY1) #define DEFAULT_PADDING 28 #define DOUBLE_PADDING 56 #define MESSAGE_TOP (LCD_H - (2*DOUBLE_PADDING)) @@ -50,11 +49,6 @@ const uint8_t __bmp_usb_plugged[] { }; LZ4Bitmap BMP_USB_PLUGGED(BMP_ARGB4444, __bmp_usb_plugged); -const uint8_t __bmp_background[] { -#include "bmp_background.lbm" -}; -LZ4Bitmap BMP_BACKGROUND(BMP_ARGB4444, __bmp_background); - #define BL_GREEN COLOR2FLAGS(RGB(73, 219, 62)) #define BL_RED COLOR2FLAGS(RGB(229, 32, 30)) #define BL_BACKGROUND COLOR2FLAGS(BLACK) @@ -86,28 +80,7 @@ static void bootloaderDrawFooter() 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, bg_bmp); - } - } - } - - if (_background) { - lcd->drawBitmap(0, 0, _background); - lcd->drawFilledRect(0, 0, LCD_W, LCD_H, SOLID, - COLOR2FLAGS(BLACK), OPACITY(4)); - } - else { - lcd->clear(BL_BACKGROUND); - } + lcd->clear(BL_BACKGROUND); } void bootloaderDrawScreen(BootloaderState st, int opt, const char* str)