diff --git a/apps/plugins/pictureflow.c b/apps/plugins/pictureflow.c index 380070b..3d7471f 100644 --- a/apps/plugins/pictureflow.c +++ b/apps/plugins/pictureflow.c @@ -1217,7 +1217,10 @@ bool is_empty_rect(struct rect *r) void render(void) { rb->lcd_set_background(LCD_RGBPACK(0,0,0)); - rb->lcd_clear_display(); /* TODO: Optimizes this by e.g. invalidating rects */ + //rb->lcd_clear_display(); /* TODO: Optimizes this by e.g. invalidating rects */ + rb->lcd_set_drawmode(DRMODE_BG|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, LCD_WIDTH, LCD_HEIGHT-40); + rb->lcd_set_drawmode(DRMODE_FG); int nleft = LEFT_SLIDES_COUNT; int nright = RIGHT_SLIDES_COUNT; @@ -1573,6 +1576,7 @@ int main(void) int fps = 0; int albumtxt_w, albumtxt_h; int ret; + int prev_center_index = -1; while (true) { current_update = *rb->current_tick; @@ -1595,7 +1599,11 @@ int main(void) albumtxt = get_album_name(center_index); rb->lcd_set_foreground(LCD_RGBPACK(255, 255, 255)); rb->lcd_getstringsize(albumtxt, &albumtxt_w, &albumtxt_h); - rb->lcd_putsxy((LCD_WIDTH - albumtxt_w) /2, LCD_HEIGHT-albumtxt_h-10, albumtxt); + //rb->lcd_putsxy((LCD_WIDTH - albumtxt_w) /2, LCD_HEIGHT-albumtxt_h-10, albumtxt); + if (center_index != prev_center_index) { + rb->lcd_puts_scroll(0, (LCD_HEIGHT-albumtxt_h-10)/albumtxt_h, albumtxt); + prev_center_index = center_index; + } rb->lcd_update(); rb->yield();