diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-09-01 04:39:48 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-09-01 04:39:48 +0000 |
commit | fa49b1ef505fd30c9a1693b32fc72908aa023b3c (patch) | |
tree | fbaf0c38190c2532084a87fb6451b85cd8b80f22 /apps | |
parent | 33a4cafda3ea423dd5fef0ab4959b181dfd7912d (diff) | |
download | rockbox-fa49b1ef505fd30c9a1693b32fc72908aa023b3c.tar.gz rockbox-fa49b1ef505fd30c9a1693b32fc72908aa023b3c.zip |
Add support for vertical stride to resizer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22587 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/recorder/resize.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/apps/recorder/resize.c b/apps/recorder/resize.c index bae72c8113..1846f5acb1 100644 --- a/apps/recorder/resize.c +++ b/apps/recorder/resize.c | |||
@@ -743,6 +743,29 @@ static void output_row_32_native(uint32_t row, void * row_in, | |||
743 | } | 743 | } |
744 | #endif /* LCD_PIXELFORMAT */ | 744 | #endif /* LCD_PIXELFORMAT */ |
745 | #elif LCD_DEPTH == 16 | 745 | #elif LCD_DEPTH == 16 |
746 | |||
747 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | ||
748 | /* M:Robe 500 */ | ||
749 | (void) fb_width; | ||
750 | fb_data *dest = (fb_data *)ctx->bm->data + row; | ||
751 | int delta = 127; | ||
752 | unsigned r, g, b; | ||
753 | struct uint32_rgb q0; | ||
754 | |||
755 | for (col = 0; col < ctx->bm->width; col++) { | ||
756 | if (ctx->dither) | ||
757 | delta = DITHERXDY(col,dy); | ||
758 | q0 = *qp++; | ||
759 | r = SC_OUT(q0.r, ctx); | ||
760 | g = SC_OUT(q0.g, ctx); | ||
761 | b = SC_OUT(q0.b, ctx); | ||
762 | r = (31 * r + (r >> 3) + delta) >> 8; | ||
763 | g = (63 * g + (g >> 2) + delta) >> 8; | ||
764 | b = (31 * b + (b >> 3) + delta) >> 8; | ||
765 | *dest = LCD_RGBPACK_LCD(r, g, b); | ||
766 | dest += ctx->bm->height; | ||
767 | } | ||
768 | #else | ||
746 | /* iriver h300, colour iPods, X5 */ | 769 | /* iriver h300, colour iPods, X5 */ |
747 | fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row; | 770 | fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row; |
748 | int delta = 127; | 771 | int delta = 127; |
@@ -761,6 +784,8 @@ static void output_row_32_native(uint32_t row, void * row_in, | |||
761 | b = (31 * b + (b >> 3) + delta) >> 8; | 784 | b = (31 * b + (b >> 3) + delta) >> 8; |
762 | *dest++ = LCD_RGBPACK_LCD(r, g, b); | 785 | *dest++ = LCD_RGBPACK_LCD(r, g, b); |
763 | } | 786 | } |
787 | #endif | ||
788 | |||
764 | #endif /* LCD_DEPTH */ | 789 | #endif /* LCD_DEPTH */ |
765 | } | 790 | } |
766 | #endif | 791 | #endif |