feat(color): Remove splash screen and boot loader background, add version info (#4139)

This commit is contained in:
philmoz
2023-10-03 18:47:56 +10:00
committed by GitHub
parent 83ec541de0
commit 71143e797b
6 changed files with 57 additions and 82 deletions
-4
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

+55 -23
View File
@@ -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; i<LCD_W; i += splashBg->width()) {
for (int j=0; j<LCD_H; j += splashBg->height()) {
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);
}
}
@@ -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; i<LCD_W; i += BMP_BACKGROUND.width()) {
for (int j=0; j<LCD_H; j += BMP_BACKGROUND.height()) {
BitmapBuffer* bg_bmp = &BMP_BACKGROUND;
_background->drawBitmap(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)
@@ -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; i<LCD_W; i += BMP_BACKGROUND.width()) {
for (int j=0; j<LCD_H; j += BMP_BACKGROUND.height()) {
BitmapBuffer* bg_bmp = &BMP_BACKGROUND;
_background->drawBitmap(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)