summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2020-10-26 14:11:38 -0400
committerWilliam Wilgus <wilgus.william@gmail.com>2020-10-26 14:35:30 -0400
commitada919fc1122c314b239212a40d15c5ab131becd (patch)
treeb5548c421e1b22c02a0c053a6db97e650eb7f139
parent9b295ce13577b5e2c2c7c122d1325a02d4569320 (diff)
downloadrockbox-ada919f.tar.gz
rockbox-ada919f.zip
FIX RED framebuffer viewport rewrite
Change-Id: I4cb8f580e15440d06f8d5fabb2fbf5147c67b49c
-rw-r--r--apps/plugins/rockboy/lcd.c3
-rw-r--r--firmware/drivers/lcd-bitmap-common.c10
-rw-r--r--firmware/target/coldfire/iaudio/x5/lcd-x5.c2
3 files changed, 9 insertions, 6 deletions
diff --git a/apps/plugins/rockboy/lcd.c b/apps/plugins/rockboy/lcd.c
index 92db851ee8..c53df5ce01 100644
--- a/apps/plugins/rockboy/lcd.c
+++ b/apps/plugins/rockboy/lcd.c
@@ -885,6 +885,9 @@ void lcd_refreshline(void)
return;
#endif
+#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256)
+ fb_data *lcd_fb = get_framebuffer();
+#endif
updatepatpix();
L = R_LY;
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index 183ab75820..d195fd8ebe 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -332,8 +332,8 @@ static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str)
static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str)
{
unsigned short *ucs;
- struct font* pf = font_get(LCDFN(current_vp)->font);
- int vp_flags = current_vp->flags;
+ struct font* pf = font_get(LCDFN(current_viewport)->font);
+ int vp_flags = LCDFN(current_viewport)->flags;
const unsigned char *bits;
int width;
@@ -345,13 +345,13 @@ static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str)
/* center takes precedence */
if (vp_flags & VP_FLAG_ALIGN_CENTER)
{
- x = ((current_vp->width - w)/ 2) + x;
+ x = ((LCDFN(current_viewport)->width - w)/ 2) + x;
if (x < 0)
x = 0;
}
else
{
- x = current_vp->width - w - x;
+ x = LCDFN(current_viewport)->width - w - x;
x += ofs;
ofs = 0;
}
@@ -362,7 +362,7 @@ static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str)
{
const unsigned short next_ch = ucs[1];
- if (x >= current_vp->width)
+ if (x >= LCDFN(current_viewport)->width)
break;
/* Get proportional width and glyph bits */
diff --git a/firmware/target/coldfire/iaudio/x5/lcd-x5.c b/firmware/target/coldfire/iaudio/x5/lcd-x5.c
index cf6e301c16..266a381c40 100644
--- a/firmware/target/coldfire/iaudio/x5/lcd-x5.c
+++ b/firmware/target/coldfire/iaudio/x5/lcd-x5.c
@@ -494,7 +494,7 @@ void lcd_update(void)
lcd_begin_write_gram();
- lcd_write_data((unsigned short *)lcd_framebuffer, LCD_WIDTH*LCD_HEIGHT);
+ lcd_write_data((unsigned short *)FBADDR(0,0), LCD_WIDTH*LCD_HEIGHT);
} /* lcd_update */
/* Update a fraction of the display. */