Draw content in display loop only when needed
Example for splash screen.
This commit is contained in:
		@@ -186,7 +186,7 @@ char lcd_printPGM(const char* str) {
 | 
				
			|||||||
  return n;
 | 
					  return n;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int8_t show_splashscreed = 2;
 | 
					int8_t show_splashscreen = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void lcd_implementation_init()
 | 
					static void lcd_implementation_init()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -221,8 +221,12 @@ static void lcd_implementation_init()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	u8g.firstPage();
 | 
						u8g.firstPage();
 | 
				
			||||||
	do {
 | 
						do {
 | 
				
			||||||
    if (show_splashscreed) {
 | 
					    switch (show_splashscreen) {
 | 
				
			||||||
 | 
					      case 2 : {
 | 
				
			||||||
        u8g.drawBitmapP(offx, offy, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
 | 
					        u8g.drawBitmapP(offx, offy, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      case 1 : {
 | 
				
			||||||
        lcd_setFont(FONT_MENU);
 | 
					        lcd_setFont(FONT_MENU);
 | 
				
			||||||
        #ifndef STRING_SPLASH_LINE2
 | 
					        #ifndef STRING_SPLASH_LINE2
 | 
				
			||||||
          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT, STRING_SPLASH_LINE1);
 | 
					          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT, STRING_SPLASH_LINE1);
 | 
				
			||||||
@@ -231,8 +235,11 @@ static void lcd_implementation_init()
 | 
				
			|||||||
          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT*3/2, STRING_SPLASH_LINE1);
 | 
					          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT*3/2, STRING_SPLASH_LINE1);
 | 
				
			||||||
          u8g.drawStr(txt2X, u8g.getHeight() - DOG_CHAR_HEIGHT*1/2, STRING_SPLASH_LINE2);
 | 
					          u8g.drawStr(txt2X, u8g.getHeight() - DOG_CHAR_HEIGHT*1/2, STRING_SPLASH_LINE2);
 | 
				
			||||||
        #endif
 | 
					        #endif
 | 
				
			||||||
      show_splashscreed--;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      break;  
 | 
				
			||||||
 | 
					    }  
 | 
				
			||||||
 | 
					    if (show_splashscreen) show_splashscreen--;
 | 
				
			||||||
	} while (u8g.nextPage());
 | 
						} while (u8g.nextPage());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user