|
@ -160,20 +160,21 @@ bool MarlinUI::detected() { return true; } |
|
|
#endif |
|
|
#endif |
|
|
u8g.firstPage(); |
|
|
u8g.firstPage(); |
|
|
do { draw_custom_bootscreen(f); } while (u8g.nextPage()); |
|
|
do { draw_custom_bootscreen(f); } while (u8g.nextPage()); |
|
|
if (frame_time) safe_delay(frame_time); |
|
|
if (frame_time) early_safe_delay(frame_time); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#ifndef CUSTOM_BOOTSCREEN_TIMEOUT |
|
|
#ifndef CUSTOM_BOOTSCREEN_TIMEOUT |
|
|
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500 |
|
|
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500 |
|
|
#endif |
|
|
#endif |
|
|
#if CUSTOM_BOOTSCREEN_TIMEOUT |
|
|
#if CUSTOM_BOOTSCREEN_TIMEOUT |
|
|
safe_delay(CUSTOM_BOOTSCREEN_TIMEOUT); |
|
|
early_safe_delay(CUSTOM_BOOTSCREEN_TIMEOUT); |
|
|
#endif |
|
|
#endif |
|
|
} |
|
|
} |
|
|
#endif // SHOW_CUSTOM_BOOTSCREEN
|
|
|
#endif // SHOW_CUSTOM_BOOTSCREEN
|
|
|
|
|
|
|
|
|
// Two-part needed to display all info
|
|
|
// Two-part needed to display all info
|
|
|
constexpr bool two_part = ((LCD_PIXEL_HEIGHT) - (START_BMPHEIGHT)) < ((MENU_FONT_ASCENT) * 2); |
|
|
constexpr bool two_part = ((LCD_PIXEL_HEIGHT) - (START_BMPHEIGHT)) < ((MENU_FONT_ASCENT) * 2); |
|
|
|
|
|
constexpr uint8_t bootscreen_pages = 1 + two_part; |
|
|
|
|
|
|
|
|
// Draw the static Marlin bootscreen from a u8g loop
|
|
|
// Draw the static Marlin bootscreen from a u8g loop
|
|
|
// or the animated boot screen within its own u8g loop
|
|
|
// or the animated boot screen within its own u8g loop
|
|
@ -225,17 +226,16 @@ bool MarlinUI::detected() { return true; } |
|
|
constexpr millis_t frame_time = MARLIN_BOOTSCREEN_FRAME_TIME; |
|
|
constexpr millis_t frame_time = MARLIN_BOOTSCREEN_FRAME_TIME; |
|
|
LOOP_L_N(f, COUNT(marlin_bootscreen_animation)) { |
|
|
LOOP_L_N(f, COUNT(marlin_bootscreen_animation)) { |
|
|
draw_bootscreen_bmp((uint8_t*)pgm_read_ptr(&marlin_bootscreen_animation[f])); |
|
|
draw_bootscreen_bmp((uint8_t*)pgm_read_ptr(&marlin_bootscreen_animation[f])); |
|
|
if (frame_time) safe_delay(frame_time); |
|
|
if (frame_time) early_safe_delay(frame_time); |
|
|
} |
|
|
} |
|
|
#endif |
|
|
#endif |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Show the Marlin bootscreen, with the u8g loop and delays
|
|
|
// Show the Marlin bootscreen, with the u8g loop and delays
|
|
|
void MarlinUI::show_marlin_bootscreen() { |
|
|
void MarlinUI::show_marlin_bootscreen() { |
|
|
constexpr uint8_t pages = two_part ? 2 : 1; |
|
|
for (uint8_t q = bootscreen_pages; q--;) { |
|
|
for (uint8_t q = pages; q--;) { |
|
|
|
|
|
draw_marlin_bootscreen(q == 0); |
|
|
draw_marlin_bootscreen(q == 0); |
|
|
safe_delay((BOOTSCREEN_TIMEOUT) / pages); |
|
|
if (q) early_safe_delay((BOOTSCREEN_TIMEOUT) / bootscreen_pages); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -244,6 +244,10 @@ bool MarlinUI::detected() { return true; } |
|
|
show_marlin_bootscreen(); |
|
|
show_marlin_bootscreen(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void MarlinUI::bootscreen_completion(const millis_t sofar) { |
|
|
|
|
|
if ((BOOTSCREEN_TIMEOUT) / bootscreen_pages > sofar) safe_delay((BOOTSCREEN_TIMEOUT) / bootscreen_pages - sofar); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
#endif // SHOW_BOOTSCREEN
|
|
|
#endif // SHOW_BOOTSCREEN
|
|
|
|
|
|
|
|
|
#if ENABLED(LIGHTWEIGHT_UI) |
|
|
#if ENABLED(LIGHTWEIGHT_UI) |
|
|