diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index 52209e60a2..10f9aadd07 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c | |||
@@ -1730,42 +1730,49 @@ void render_slide(struct slide_data *slide, const int alpha) | |||
1730 | dy = (CAM_DIST_R + zo + fmul(xs, sinr)) / CAM_DIST; | 1730 | dy = (CAM_DIST_R + zo + fmul(xs, sinr)) / CAM_DIST; |
1731 | 1731 | ||
1732 | const pix_t *ptr = &src[column * bmp->height]; | 1732 | const pix_t *ptr = &src[column * bmp->height]; |
1733 | const int pixelstep = BUFFER_WIDTH; | 1733 | |
1734 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | ||
1735 | #define PIXELSTEP_Y 1 | ||
1736 | #define LCDADDR(x, y) (&buffer[LCD_HEIGHT*(x) + (y)]) | ||
1737 | #else | ||
1738 | #define PIXELSTEP_Y BUFFER_WIDTH | ||
1739 | #define LCDADDR(x, y) (&buffer[(y)*BUFFER_WIDTH + (x)]) | ||
1740 | #endif | ||
1734 | 1741 | ||
1735 | int p = (bmp->height-1-DISPLAY_OFFS) * PFREAL_ONE; | 1742 | int p = (bmp->height-1-DISPLAY_OFFS) * PFREAL_ONE; |
1736 | int plim = MAX(0, p - (LCD_HEIGHT/2-1) * dy); | 1743 | int plim = MAX(0, p - (LCD_HEIGHT/2-1) * dy); |
1737 | pix_t *pixel = &buffer[((LCD_HEIGHT/2)-1)*BUFFER_WIDTH + x]; | 1744 | pix_t *pixel = LCDADDR(x, (LCD_HEIGHT/2)-1 ); |
1738 | 1745 | ||
1739 | if (alpha == 256) { | 1746 | if (alpha == 256) { |
1740 | while (p >= plim) { | 1747 | while (p >= plim) { |
1741 | *pixel = ptr[((unsigned)p) >> PFREAL_SHIFT]; | 1748 | *pixel = ptr[((unsigned)p) >> PFREAL_SHIFT]; |
1742 | p -= dy; | 1749 | p -= dy; |
1743 | pixel -= pixelstep; | 1750 | pixel -= PIXELSTEP_Y; |
1744 | } | 1751 | } |
1745 | } else { | 1752 | } else { |
1746 | while (p >= plim) { | 1753 | while (p >= plim) { |
1747 | *pixel = fade_color(ptr[((unsigned)p) >> PFREAL_SHIFT], alpha); | 1754 | *pixel = fade_color(ptr[((unsigned)p) >> PFREAL_SHIFT], alpha); |
1748 | p -= dy; | 1755 | p -= dy; |
1749 | pixel -= pixelstep; | 1756 | pixel -= PIXELSTEP_Y; |
1750 | } | 1757 | } |
1751 | } | 1758 | } |
1752 | p = (bmp->height-DISPLAY_OFFS) * PFREAL_ONE; | 1759 | p = (bmp->height-DISPLAY_OFFS) * PFREAL_ONE; |
1753 | plim = MIN(sh * PFREAL_ONE, p + (LCD_HEIGHT/2) * dy); | 1760 | plim = MIN(sh * PFREAL_ONE, p + (LCD_HEIGHT/2) * dy); |
1754 | int plim2 = MIN(MIN(sh + REFLECT_HEIGHT, sh * 2) * PFREAL_ONE, | 1761 | int plim2 = MIN(MIN(sh + REFLECT_HEIGHT, sh * 2) * PFREAL_ONE, |
1755 | p + (LCD_HEIGHT/2) * dy); | 1762 | p + (LCD_HEIGHT/2) * dy); |
1756 | pixel = &buffer[(LCD_HEIGHT/2)*BUFFER_WIDTH + x]; | 1763 | pixel = LCDADDR(x, (LCD_HEIGHT/2) ); |
1757 | 1764 | ||
1758 | if (alpha == 256) { | 1765 | if (alpha == 256) { |
1759 | while (p < plim) { | 1766 | while (p < plim) { |
1760 | *pixel = ptr[((unsigned)p) >> PFREAL_SHIFT]; | 1767 | *pixel = ptr[((unsigned)p) >> PFREAL_SHIFT]; |
1761 | p += dy; | 1768 | p += dy; |
1762 | pixel += pixelstep; | 1769 | pixel += PIXELSTEP_Y; |
1763 | } | 1770 | } |
1764 | } else { | 1771 | } else { |
1765 | while (p < plim) { | 1772 | while (p < plim) { |
1766 | *pixel = fade_color(ptr[((unsigned)p) >> PFREAL_SHIFT], alpha); | 1773 | *pixel = fade_color(ptr[((unsigned)p) >> PFREAL_SHIFT], alpha); |
1767 | p += dy; | 1774 | p += dy; |
1768 | pixel += pixelstep; | 1775 | pixel += PIXELSTEP_Y; |
1769 | } | 1776 | } |
1770 | } | 1777 | } |
1771 | while (p < plim2) { | 1778 | while (p < plim2) { |
@@ -1773,7 +1780,7 @@ void render_slide(struct slide_data *slide, const int alpha) | |||
1773 | int lalpha = reftab[ty]; | 1780 | int lalpha = reftab[ty]; |
1774 | *pixel = fade_color(ptr[sh - 1 - ty], lalpha); | 1781 | *pixel = fade_color(ptr[sh - 1 - ty], lalpha); |
1775 | p += dy; | 1782 | p += dy; |
1776 | pixel += pixelstep; | 1783 | pixel += PIXELSTEP_Y; |
1777 | } | 1784 | } |
1778 | 1785 | ||
1779 | if (zo || slide->angle) | 1786 | if (zo || slide->angle) |
@@ -1790,7 +1797,6 @@ void render_slide(struct slide_data *slide, const int alpha) | |||
1790 | return; | 1797 | return; |
1791 | } | 1798 | } |
1792 | 1799 | ||
1793 | |||
1794 | /** | 1800 | /** |
1795 | Jump the the given slide_index | 1801 | Jump the the given slide_index |
1796 | */ | 1802 | */ |