1
0
Fork 0
forked from len0rd/rockbox

lcd: Fix update_viewport() for non-default stride viewports

Simplify update_viewport() by calling update_viewport_rect().
The resulting LCD driver calls are the same either way and
for some reason, update_viewport() didn't handle non-default
stride viewports correctly.

Change-Id: Ic34d3d40e4f758db897cb3944d9d7475bbdb4d2c
This commit is contained in:
Aidan MacDonald 2022-10-02 12:52:49 +01:00
parent 9549ddabba
commit c607bfac6f

View file

@ -342,27 +342,8 @@ struct viewport* LCDFN(set_viewport)(struct viewport* vp)
void LCDFN(update_viewport)(void)
{
struct viewport* vp = LCDFN(current_viewport);
if ((vp->flags & VP_FLAG_OWNER_UPDATE) == VP_FLAG_OWNER_UPDATE)
{
#ifdef LOGF_ENABLE
logf("%s ignored - owner update", __func__);
#endif
return;
}
int x, y;
if (vp->buffer->stride != LCDFN(framebuffer_default.stride))
{
x = 0;
y = 0;
}
else
{
x = vp->x;
y = vp->y;
}
LCDFN(update_rect)(x, y, vp->width, vp->height);
LCDFN(update_viewport_rect)(0, 0, vp->width, vp->height);
}
void LCDFN(update_viewport_rect)(int x, int y, int width, int height)