diff --git a/lib/obp60task/OBP60Extensions.h b/lib/obp60task/OBP60Extensions.h index 17a2a2c..76a47df 100644 --- a/lib/obp60task/OBP60Extensions.h +++ b/lib/obp60task/OBP60Extensions.h @@ -194,7 +194,34 @@ inline void drawMonochromeBitmap( #endif } +// helper for built-in OBP logo (400×300 mono bitmap) +inline void drawOBPLogo(int16_t x, int16_t y, uint16_t color) { + constexpr int LOGO_W = 400; + constexpr int LOGO_H = 300; + drawMonochromeBitmap(x, y, + gImage_Logo_OBP_400x300_sw, + LOGO_W, LOGO_H, + color, + /*vertical=*/false, + /*lsbFirst=*/false, + /*mirrorX=*/false); +} + // Display wrapper functions for E-Ink/TFT compatibility + +// generic bitmap draw that accepts 1‑bit data; TFT version +// forwards to drawMonochromeBitmap whereas EPD uses native drawBitmap +inline void displayDrawBitmap(int16_t x, int16_t y, + const uint8_t *bmp, + int16_t w, int16_t h, + uint16_t color) { + #ifdef DISPLAY_ST7796 + drawMonochromeBitmap(x, y, bmp, w, h, color); + #else + getdisplay().drawBitmap(x, y, bmp, w, h, color); + #endif +} + inline void displayFirstPage() { #ifdef DISPLAY_ST7796 // TFT LCD doesn't need firstPage() diff --git a/lib/obp60task/obp60task.cpp b/lib/obp60task/obp60task.cpp index 77f31ba..fba82ac 100644 --- a/lib/obp60task/obp60task.cpp +++ b/lib/obp60task/obp60task.cpp @@ -397,16 +397,9 @@ void OBP60Task(GwApi *api){ displayNextPage(); // Fast Refresh if(String(displaymode) == "Logo + QR Code" || String(displaymode) == "Logo"){ getdisplay().fillScreen(commonData.bgcolor); - // logo is 400×300 pixels regardless of physical display resolution - const int LOGO_W = 400; - const int LOGO_H = 300; - // bitmap is stored row‑wise LSB‑oriented (adfruit generator), no vertical packing - drawMonochromeBitmap(0, 0, gImage_Logo_OBP_400x300_sw, - LOGO_W, LOGO_H, - commonData.fgcolor, - /*vertical=*/false, - /*lsbFirst=*/false, - /*mirrorX=*/false); + // draw the fixed-size logo via generic display wrapper + displayDrawBitmap(0, 0, gImage_Logo_OBP_400x300_sw, + 400, 300, commonData.fgcolor); displayNextPage(); // Fast Refresh displayNextPage(); // Fast Refresh delay(SHOW_TIME); // Logo show time