summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-01-25 19:28:40 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-01-25 19:28:40 +0000
commitd796ab6f61a4a336c53d6689750aa0eca118bbfd (patch)
treeb53af2fab5ad342f19b137cfa7c8c86c06fec839
parent81682e723a9294eec17bc74757fed3cc61a082b0 (diff)
downloadrockbox-d796ab6f61a4a336c53d6689750aa0eca118bbfd.tar.gz
rockbox-d796ab6f61a4a336c53d6689750aa0eca118bbfd.zip
Pacbox: Fix assumption about LCD width of 128 implying the display needs vertical clipping. No more screen garbage on sa9200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29138 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/pacbox/pacbox.h6
-rw-r--r--apps/plugins/pacbox/pacbox_lcd.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 273408875e..99d9e2ffee 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -293,7 +293,13 @@
#define YOFS ((LCD_HEIGHT-224/2)/2)
#elif (LCD_WIDTH >= 128)
#define XOFS ((LCD_WIDTH-224/2)/2)
+#if LCD_HEIGHT < 144
#define YCLIP ((288-2*LCD_HEIGHT)/2)
+#define YOFS 0
+#else
+#define YCLIP 0
+#define YOFS ((LCD_HEIGHT-288/2)/2)
+#endif
#endif
/* How many video frames (out of a possible 60) we display each second.
diff --git a/apps/plugins/pacbox/pacbox_lcd.c b/apps/plugins/pacbox/pacbox_lcd.c
index 04bfe5f797..bc2de20858 100644
--- a/apps/plugins/pacbox/pacbox_lcd.c
+++ b/apps/plugins/pacbox/pacbox_lcd.c
@@ -106,11 +106,13 @@ void blit_display(fb_data* lcd_framebuffer, unsigned char* vbuf)
vbuf+=ScreenWidth;
}
#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128)
- /* 0.5 scaling - display every other pixel = 112x144, crop to 112x128 */
+ /* 0.5 scaling - display every other pixel
+ * LCD_HEIGHT < 144: 112x144, crop to 112x128
+ * else center vertically without clipping */
(void)next_dst;
- dst=&lcd_framebuffer[XOFS];
+ dst=&lcd_framebuffer[YOFS*LCD_WIDTH+XOFS];
- /* Skip first 16 lines */
+ /* Skip first YCLIP lines */
vbuf+=ScreenWidth*YCLIP;
/* Show regular screen */