summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2006-05-03 20:22:03 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2006-05-03 20:22:03 +0000
commit69433c8667846672d2297380b4a34ef382b53062 (patch)
tree6904a08fa3ae72997b9c353eee3542ed18d94314
parent28b5afd05a075cce1f46e5cc85c7e2caae3fc6ee (diff)
downloadrockbox-69433c8667846672d2297380b4a34ef382b53062.tar.gz
rockbox-69433c8667846672d2297380b4a34ef382b53062.zip
Fix fillrect calculation error for 'Screen scrolls out of view'. Fixes bug 5267. Also some minor code policing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9871 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/lcd-16bit.c5
-rw-r--r--firmware/drivers/lcd-2bit-horz.c5
-rw-r--r--firmware/drivers/lcd-h100-remote.c6
-rw-r--r--firmware/drivers/lcd-h100.c5
-rw-r--r--firmware/drivers/lcd-recorder.c5
5 files changed, 16 insertions, 10 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index d337ea95a4..c3307a560a 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -779,7 +779,8 @@ void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
779 779
780/* put a string at a given char position, style, and pixel position, 780/* put a string at a given char position, style, and pixel position,
781 * skipping first offset pixel columns */ 781 * skipping first offset pixel columns */
782void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, int offset) 782void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style,
783 int offset)
783{ 784{
784 int xpos,ypos,w,h; 785 int xpos,ypos,w,h;
785 int lastmode = drawmode; 786 int lastmode = drawmode;
@@ -797,7 +798,7 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, in
797 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 798 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
798 lcd_putsxyofs(xpos, ypos, offset, str); 799 lcd_putsxyofs(xpos, ypos, offset, str);
799 drawmode ^= DRMODE_INVERSEVID; 800 drawmode ^= DRMODE_INVERSEVID;
800 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 801 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
801 drawmode = lastmode; 802 drawmode = lastmode;
802} 803}
803 804
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c
index f965e1b707..abe608f6b6 100644
--- a/firmware/drivers/lcd-2bit-horz.c
+++ b/firmware/drivers/lcd-2bit-horz.c
@@ -710,7 +710,8 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
710 710
711 bits = font_get_bits(pf, ch); 711 bits = font_get_bits(pf, ch);
712 712
713 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height); 713 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs,
714 pf->height);
714 715
715 x += width - ofs; 716 x += width - ofs;
716 ofs = 0; 717 ofs = 0;
@@ -762,7 +763,7 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
762 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 763 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
763 lcd_putsxyofs(xpos, ypos, offset, str); 764 lcd_putsxyofs(xpos, ypos, offset, str);
764 drawmode ^= DRMODE_INVERSEVID; 765 drawmode ^= DRMODE_INVERSEVID;
765 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 766 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
766 drawmode = lastmode; 767 drawmode = lastmode;
767} 768}
768 769
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index f1d1956afe..2d16a08a24 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -1207,7 +1207,8 @@ void lcd_remote_puts_offset(int x, int y, const unsigned char *str, int offset)
1207 1207
1208/* put a string at a given char position, style, and pixel position, 1208/* put a string at a given char position, style, and pixel position,
1209 * skipping first offset pixel columns */ 1209 * skipping first offset pixel columns */
1210void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str, int style, int offset) 1210void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str,
1211 int style, int offset)
1211{ 1212{
1212 int xpos,ypos,w,h; 1213 int xpos,ypos,w,h;
1213 int lastmode = drawmode; 1214 int lastmode = drawmode;
@@ -1225,7 +1226,8 @@ void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str, int st
1225 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 1226 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
1226 lcd_remote_putsxyofs(xpos, ypos, offset, str); 1227 lcd_remote_putsxyofs(xpos, ypos, offset, str);
1227 drawmode ^= DRMODE_INVERSEVID; 1228 drawmode ^= DRMODE_INVERSEVID;
1228 lcd_remote_fillrect(xpos + w, ypos, LCD_REMOTE_WIDTH - (xpos + w), h); 1229 lcd_remote_fillrect(xpos + w - offset, ypos,
1230 LCD_REMOTE_WIDTH - (xpos + w - offset), h);
1229 drawmode = lastmode; 1231 drawmode = lastmode;
1230} 1232}
1231 1233
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index 8a06367112..85b8b0229e 100644
--- a/firmware/drivers/lcd-h100.c
+++ b/firmware/drivers/lcd-h100.c
@@ -1044,7 +1044,8 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
1044 1044
1045 bits = font_get_bits(pf, ch); 1045 bits = font_get_bits(pf, ch);
1046 1046
1047 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height); 1047 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs,
1048 pf->height);
1048 1049
1049 x += width - ofs; 1050 x += width - ofs;
1050 ofs = 0; 1051 ofs = 0;
@@ -1096,7 +1097,7 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
1096 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 1097 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
1097 lcd_putsxyofs(xpos, ypos, offset, str); 1098 lcd_putsxyofs(xpos, ypos, offset, str);
1098 drawmode ^= DRMODE_INVERSEVID; 1099 drawmode ^= DRMODE_INVERSEVID;
1099 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 1100 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
1100 drawmode = lastmode; 1101 drawmode = lastmode;
1101} 1102}
1102 1103
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index 89b041dc3d..8914e272ec 100644
--- a/firmware/drivers/lcd-recorder.c
+++ b/firmware/drivers/lcd-recorder.c
@@ -897,7 +897,8 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
897 897
898 bits = font_get_bits(pf, ch); 898 bits = font_get_bits(pf, ch);
899 899
900 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height); 900 lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs,
901 pf->height);
901 902
902 x += width - ofs; 903 x += width - ofs;
903 ofs = 0; 904 ofs = 0;
@@ -948,7 +949,7 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
948 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 949 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
949 lcd_putsxyofs(xpos, ypos, offset, str); 950 lcd_putsxyofs(xpos, ypos, offset, str);
950 drawmode ^= DRMODE_INVERSEVID; 951 drawmode ^= DRMODE_INVERSEVID;
951 lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); 952 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
952 drawmode = lastmode; 953 drawmode = lastmode;
953} 954}
954 955