Misc: xr-glx-hybrid alias & minor fixes
- Add "xr-glx-hybrid" as an alias of "xr_glx_hybrid". (#163) - Clear damage history in expose_root() and when root window size changes. Unfortunately this doesn't fix #181.
This commit is contained in:
parent
8a5becf617
commit
9950d08ab7
14
src/common.h
14
src/common.h
|
@ -1499,6 +1499,11 @@ parse_backend(session_t *ps, const char *str) {
|
||||||
ps->o.backend = BKEND_XR_GLX_HYBRID;
|
ps->o.backend = BKEND_XR_GLX_HYBRID;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// cju wants to use dashes
|
||||||
|
if (!strcasecmp(str, "xr-glx-hybrid")) {
|
||||||
|
ps->o.backend = BKEND_XR_GLX_HYBRID;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
printf_errf("(\"%s\"): Invalid backend argument.", str);
|
printf_errf("(\"%s\"): Invalid backend argument.", str);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1788,6 +1793,15 @@ free_region(session_t *ps, XserverRegion *p) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Free all regions in ps->all_damage_last .
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
free_all_damage_last(session_t *ps) {
|
||||||
|
for (int i = 0; i < CGLX_MAX_BUFFER_AGE; ++i)
|
||||||
|
free_region(ps, &ps->all_damage_last[i]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crop a rectangle by another rectangle.
|
* Crop a rectangle by another rectangle.
|
||||||
*
|
*
|
||||||
|
|
|
@ -2983,6 +2983,7 @@ configure_win(session_t *ps, XConfigureEvent *ce) {
|
||||||
|
|
||||||
rebuild_screen_reg(ps);
|
rebuild_screen_reg(ps);
|
||||||
rebuild_shadow_exclude_reg(ps);
|
rebuild_shadow_exclude_reg(ps);
|
||||||
|
free_all_damage_last(ps);
|
||||||
|
|
||||||
#ifdef CONFIG_VSYNC_OPENGL
|
#ifdef CONFIG_VSYNC_OPENGL
|
||||||
if (BKEND_GLX == ps->o.backend)
|
if (BKEND_GLX == ps->o.backend)
|
||||||
|
@ -3275,6 +3276,7 @@ error(Display __attribute__((unused)) *dpy, XErrorEvent *ev) {
|
||||||
|
|
||||||
static void
|
static void
|
||||||
expose_root(session_t *ps, XRectangle *rects, int nrects) {
|
expose_root(session_t *ps, XRectangle *rects, int nrects) {
|
||||||
|
free_all_damage_last(ps);
|
||||||
XserverRegion region = XFixesCreateRegion(ps->dpy, rects, nrects);
|
XserverRegion region = XFixesCreateRegion(ps->dpy, rects, nrects);
|
||||||
add_damage(ps, region);
|
add_damage(ps, region);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue