summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-recorder.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2006-02-02 19:35:51 +0000
committerJens Arnold <amiconn@rockbox.org>2006-02-02 19:35:51 +0000
commit32326ef10d92ffcbf3167bddb0c67e02ed0bd591 (patch)
tree7d405feca09ec816e18b919029804f4f7dfdb249 /firmware/drivers/lcd-recorder.c
parent20debbfa5d2390ea54ff07164f93495766f5828b (diff)
downloadrockbox-32326ef10d92ffcbf3167bddb0c67e02ed0bd591.tar.gz
rockbox-32326ef10d92ffcbf3167bddb0c67e02ed0bd591.zip
* Changed implementation of inverse bar: Instead of complementing all pixels after drawing the text, the text is drawn in inversevid mode. This is faster, and will be more readable when backdrop image support gets added. Appearance on non-colour targets doesn't change. * Speedup of the scroll thread.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8532 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/lcd-recorder.c')
-rw-r--r--firmware/drivers/lcd-recorder.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index b7bcd02cec..f69bf21fd5 100644
--- a/firmware/drivers/lcd-recorder.c
+++ b/firmware/drivers/lcd-recorder.c
@@ -950,14 +950,11 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
950 lcd_getstringsize(str, &w, &h); 950 lcd_getstringsize(str, &w, &h);
951 xpos = xmargin + x*w / utf8length(str); 951 xpos = xmargin + x*w / utf8length(str);
952 ypos = ymargin + y*h; 952 ypos = ymargin + y*h;
953 drawmode = (style & STYLE_INVERT) ?
954 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
953 lcd_putsxyofs(xpos, ypos, offset, str); 955 lcd_putsxyofs(xpos, ypos, offset, str);
954 drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID); 956 drawmode ^= DRMODE_INVERSEVID;
955 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 957 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
956 if (style & STYLE_INVERT)
957 {
958 drawmode = DRMODE_COMPLEMENT;
959 lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h);
960 }
961 drawmode = lastmode; 958 drawmode = lastmode;
962} 959}
963 960
@@ -1127,15 +1124,9 @@ static void scroll_thread(void)
1127 } 1124 }
1128 1125
1129 lastmode = drawmode; 1126 lastmode = drawmode;
1130 drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID); 1127 drawmode = s->invert ?
1131 lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height); 1128 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
1132 drawmode = DRMODE_SOLID;
1133 lcd_putsxyofs(xpos, ypos, s->offset, s->line); 1129 lcd_putsxyofs(xpos, ypos, s->offset, s->line);
1134 if (s->invert)
1135 {
1136 drawmode = DRMODE_COMPLEMENT;
1137 lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
1138 }
1139 drawmode = lastmode; 1130 drawmode = lastmode;
1140 lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height); 1131 lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
1141 } 1132 }