[client] app: allow selective full invalidation

Overlays only need to trigger a new frame if they have changed and not
full window invalidation, this change allows for this.
This commit is contained in:
Geoffrey McRae
2021-08-05 06:47:36 +10:00
parent 6c84c0eca6
commit 6e7f39edee
8 changed files with 13 additions and 12 deletions

View File

@@ -123,7 +123,7 @@ void waylandEGLSwapBuffers(EGLDisplay display, EGLSurface surface, const struct
app_handleResizeEvent(wlWm.width, wlWm.height, wl_fixed_to_double(wlWm.scale),
(struct Border) {0, 0, 0, 0});
app_invalidateWindow();
app_invalidateWindow(true);
waylandStopWaitFrame();
wlWm.needsResize = false;
}

View File

@@ -46,7 +46,7 @@ static void xdgSurfaceConfigure(void * data, struct xdg_surface * xdgSurface,
{
wlWm.needsResize = true;
wlWm.resizeSerial = serial;
app_invalidateWindow();
app_invalidateWindow(true);
waylandStopWaitFrame();
}
else

View File

@@ -48,7 +48,7 @@ void waylandWindowUpdateScale(void)
wlWm.scale = maxScale;
wlWm.fractionalScale = wl_fixed_from_int(wl_fixed_to_int(maxScale)) != maxScale;
wlWm.needsResize = true;
app_invalidateWindow();
app_invalidateWindow(true);
waylandStopWaitFrame();
}
}

View File

@@ -708,7 +708,7 @@ static int x11EventThread(void * unused)
case Expose:
{
app_invalidateWindow();
app_invalidateWindow(true);
break;
}