Pixel-accurate (vertical) list scrolling for touchscreen targets.

Looks much smoother now as you don't scroll by whole lines anymore.
Add some functions lcd driver to enable the line based scrolling engine to draw the lines with a pixel-based y-offset.
This should also allow for a sensible kinetic scrolling mechanism (still a todo).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28214 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Martitz 2010-10-06 12:46:42 +00:00
parent 53a936ab83
commit d9d0b4dd20
6 changed files with 139 additions and 44 deletions

View file

@ -77,11 +77,15 @@ struct screen
void (*scroll_step)(int pixels);
void (*puts_style_offset)(int x, int y, const unsigned char *str,
int style, int offset);
int style, int x_offset);
void (*puts_style_xyoffset)(int x, int y, const unsigned char *str,
int style, int x_offset, int y_offset);
void (*puts_scroll_style)(int x, int y, const unsigned char *string,
int style);
void (*puts_scroll_style_offset)(int x, int y, const unsigned char *string,
int style, int offset);
int style, int x_offset);
void (*puts_scroll_style_xyoffset)(int x, int y, const unsigned char *string,
int style, int x_offset, int y_offset);
void (*mono_bitmap)(const unsigned char *src,
int x, int y, int width, int height);
void (*mono_bitmap_part)(const unsigned char *src, int src_x, int src_y,
@ -134,7 +138,9 @@ struct screen
void (*puts_offset)(int x, int y, const unsigned char *str, int offset);
void (*puts_scroll)(int x, int y, const unsigned char *string);
void (*puts_scroll_offset)(int x, int y, const unsigned char *string,
int offset);
int x_offset);
void (*puts_scroll_xyoffset)(int x, int y, const unsigned char *string,
int x_offset, int y_offset);
void (*scroll_speed)(int speed);
void (*scroll_delay)(int ms);
void (*stop_scroll)(void);