FIX RED framebuffer viewport rewrite

Change-Id: I4cb8f580e15440d06f8d5fabb2fbf5147c67b49c
This commit is contained in:
William Wilgus 2020-10-26 14:11:38 -04:00
parent 9b295ce135
commit ada919fc11
3 changed files with 9 additions and 6 deletions

View file

@ -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;

View file

@ -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 */

View file

@ -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. */