forked from len0rd/rockbox
* 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
This commit is contained in:
parent
20debbfa5d
commit
32326ef10d
4 changed files with 23 additions and 60 deletions
|
|
@ -675,15 +675,11 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, in
|
|||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / utf8length(str);
|
||||
ypos = ymargin + y*h;
|
||||
drawmode = (style & STYLE_INVERT) ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, offset, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
(void)style;
|
||||
drawmode ^= DRMODE_INVERSEVID;
|
||||
lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
|
||||
if (style & STYLE_INVERT)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
}
|
||||
|
||||
|
|
@ -854,15 +850,9 @@ static void scroll_thread(void)
|
|||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
drawmode = DRMODE_SOLID;
|
||||
drawmode = s->invert ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, s->offset, s->line);
|
||||
if (s->invert)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1167,14 +1167,11 @@ void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str, int st
|
|||
lcd_remote_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / utf8length((char *)str);
|
||||
ypos = ymargin + y*h;
|
||||
drawmode = (style & STYLE_INVERT) ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_remote_putsxyofs(xpos, ypos, offset, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
drawmode ^= DRMODE_INVERSEVID;
|
||||
lcd_remote_fillrect(xpos + w, ypos, LCD_REMOTE_WIDTH - (xpos + w), h);
|
||||
if (style & STYLE_INVERT)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_remote_fillrect(xpos, ypos, LCD_REMOTE_WIDTH - xpos, h);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
}
|
||||
|
||||
|
|
@ -1354,15 +1351,9 @@ static void scroll_thread(void)
|
|||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
lcd_remote_fillrect(xpos, ypos, LCD_REMOTE_WIDTH - xpos, pf->height);
|
||||
drawmode = DRMODE_SOLID;
|
||||
lcd_remote_putsxyofs(xpos, ypos, s->offset, (unsigned char *)s->line);
|
||||
if (s->invert)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_remote_fillrect(xpos, ypos, LCD_REMOTE_WIDTH - xpos, pf->height);
|
||||
}
|
||||
drawmode = s->invert ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_remote_putsxyofs(xpos, ypos, s->offset, s->line);
|
||||
drawmode = lastmode;
|
||||
lcd_remote_update_rect(xpos, ypos, LCD_REMOTE_WIDTH - xpos, pf->height);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -845,7 +845,7 @@ void lcd_mono_bitmap_part(const unsigned char *src, int src_x, int src_y,
|
|||
unsigned mask_col = mask;
|
||||
unsigned data = 0;
|
||||
|
||||
for (y = ny; y >= 8; y -= 8)
|
||||
for (y = ny; y >= 8; y -= 8)
|
||||
{
|
||||
data |= *src_col << shift;
|
||||
|
||||
|
|
@ -1090,14 +1090,11 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
|
|||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / utf8length((char *)str);
|
||||
ypos = ymargin + y*h;
|
||||
drawmode = (style & STYLE_INVERT) ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, offset, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
drawmode ^= DRMODE_INVERSEVID;
|
||||
lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
|
||||
if (style & STYLE_INVERT)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
}
|
||||
|
||||
|
|
@ -1266,15 +1263,9 @@ static void scroll_thread(void)
|
|||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
drawmode = DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, s->offset, (unsigned char *)s->line);
|
||||
if (s->invert)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
drawmode = s->invert ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, s->offset, s->line);
|
||||
drawmode = lastmode;
|
||||
lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -950,14 +950,11 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
|
|||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / utf8length(str);
|
||||
ypos = ymargin + y*h;
|
||||
drawmode = (style & STYLE_INVERT) ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, offset, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
drawmode ^= DRMODE_INVERSEVID;
|
||||
lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
|
||||
if (style & STYLE_INVERT)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
}
|
||||
|
||||
|
|
@ -1127,15 +1124,9 @@ static void scroll_thread(void)
|
|||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
drawmode = DRMODE_SOLID;
|
||||
drawmode = s->invert ?
|
||||
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
|
||||
lcd_putsxyofs(xpos, ypos, s->offset, s->line);
|
||||
if (s->invert)
|
||||
{
|
||||
drawmode = DRMODE_COMPLEMENT;
|
||||
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
drawmode = lastmode;
|
||||
lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue