forked from len0rd/rockbox
scroll engine: Factor out renderer function so it can be called by lcd code.
This is used by lcd_puts_scroll_worker() to render the line immediately instead of waiting for the next scroll tick when only the text was updated. Previously lcd_puts_scroll_worker() did not render anything in this case which could lead to visible blinking. This fixes blinking scrolling lines with dynamic text in the skin engine. Change-Id: I475bde8c8eb7c92f505e3c5ecf4d32bb90690536
This commit is contained in:
parent
2a471c9e84
commit
26b317e094
3 changed files with 80 additions and 53 deletions
|
@ -30,6 +30,7 @@
|
|||
#include "file.h"
|
||||
|
||||
struct viewport;
|
||||
struct scrollinfo;
|
||||
|
||||
extern void scroll_init(void) INIT_ATTR;
|
||||
|
||||
|
@ -40,6 +41,7 @@ extern void lcd_scroll_delay(int ms);
|
|||
extern void lcd_scroll_stop(void);
|
||||
extern void lcd_scroll_stop_viewport(const struct viewport *vp);
|
||||
extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
|
||||
extern bool lcd_scroll_now(struct scrollinfo *scroll);
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
extern void lcd_remote_scroll_speed(int speed);
|
||||
extern void lcd_remote_scroll_delay(int ms);
|
||||
|
@ -47,8 +49,11 @@ extern void lcd_remote_scroll_delay(int ms);
|
|||
extern void lcd_remote_scroll_stop(void);
|
||||
extern void lcd_remote_scroll_stop_viewport(const struct viewport *vp);
|
||||
extern void lcd_remote_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
|
||||
extern bool lcd_remote_scroll_now(struct scrollinfo *scroll);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* internal usage, but in multiple drivers
|
||||
* larger than the normal linebuffer since it holds the line a second
|
||||
* time (+3 spaces) for non-bidir scrolling */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue