1
0
Fork 0
forked from len0rd/rockbox

zen/zenxfi: correctly implement partial redraw

Although there is no difference in the cost of a full or partial update,
it is preferable that the semantic of lcd_update_rect() be correct.

Change-Id: I8a168388b98e0dbd7237729b7fd8a62fa1885be1
This commit is contained in:
Amaury Pouly 2013-11-11 02:01:05 +00:00
parent 7bbdcc1c3b
commit a54c4ab7d4

View file

@ -339,13 +339,15 @@ void lcd_update_rect(int x, int y, int w, int h)
if(!lcd_on) if(!lcd_on)
return; return;
#endif #endif
uint8_t *p = FRAME; for(int yy = y; yy < y + h; yy++)
for(int y = 0; y < LCD_HEIGHT; y++) {
for(int x = 0; x < LCD_WIDTH; x++) uint16_t *pix = FBADDR(x, yy);
uint8_t *p = 3 * (yy * LCD_WIDTH + x) + (uint8_t *)FRAME;
for(int xx = 0; xx < w; xx++, pix++)
{ {
uint16_t pix = *FBADDR(x,y); *p++ = RGB_UNPACK_RED(*pix);
*p++ = RGB_UNPACK_RED(pix); *p++ = RGB_UNPACK_GREEN(*pix);
*p++ = RGB_UNPACK_GREEN(pix); *p++ = RGB_UNPACK_BLUE(*pix);
*p++ = RGB_UNPACK_BLUE(pix);
} }
}
} }