forked from len0rd/rockbox
Add support for vertical stride to resizer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22587 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
33a4cafda3
commit
fa49b1ef50
1 changed files with 25 additions and 0 deletions
|
@ -743,6 +743,29 @@ static void output_row_32_native(uint32_t row, void * row_in,
|
|||
}
|
||||
#endif /* LCD_PIXELFORMAT */
|
||||
#elif LCD_DEPTH == 16
|
||||
|
||||
#if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
|
||||
/* M:Robe 500 */
|
||||
(void) fb_width;
|
||||
fb_data *dest = (fb_data *)ctx->bm->data + row;
|
||||
int delta = 127;
|
||||
unsigned r, g, b;
|
||||
struct uint32_rgb q0;
|
||||
|
||||
for (col = 0; col < ctx->bm->width; col++) {
|
||||
if (ctx->dither)
|
||||
delta = DITHERXDY(col,dy);
|
||||
q0 = *qp++;
|
||||
r = SC_OUT(q0.r, ctx);
|
||||
g = SC_OUT(q0.g, ctx);
|
||||
b = SC_OUT(q0.b, ctx);
|
||||
r = (31 * r + (r >> 3) + delta) >> 8;
|
||||
g = (63 * g + (g >> 2) + delta) >> 8;
|
||||
b = (31 * b + (b >> 3) + delta) >> 8;
|
||||
*dest = LCD_RGBPACK_LCD(r, g, b);
|
||||
dest += ctx->bm->height;
|
||||
}
|
||||
#else
|
||||
/* iriver h300, colour iPods, X5 */
|
||||
fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row;
|
||||
int delta = 127;
|
||||
|
@ -761,6 +784,8 @@ static void output_row_32_native(uint32_t row, void * row_in,
|
|||
b = (31 * b + (b >> 3) + delta) >> 8;
|
||||
*dest++ = LCD_RGBPACK_LCD(r, g, b);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* LCD_DEPTH */
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue