diff options
author | Dudemanguy <random342@airmail.cc> | 2020-10-01 11:00:58 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2020-10-01 11:12:22 -0500 |
commit | 34b8adc4562f38374d8eb981b002f268dc5640d4 (patch) | |
tree | e2bf777aa9dd629e526a2bd0819a4a208f8b8541 /video/out/vo_wlshm.c | |
parent | dcec6d9556c6cfca11b865442174479096f55111 (diff) | |
download | mpv-34b8adc4562f38374d8eb981b002f268dc5640d4.tar.bz2 mpv-34b8adc4562f38374d8eb981b002f268dc5640d4.tar.xz |
wayland: set an opaque region
Apparently a part of the wayland spec. A compositor may use a surface
that has set part of itself as opaque for various optimizations. For
mpv, we simply set the entire surface as opaque as long as the user has
not set alpha=yes (note: alpha is technically broken in the wayland EGL
backend at the time of this commit but oh well). wlshm is always opaque.
Fixes #8125.
Diffstat (limited to 'video/out/vo_wlshm.c')
-rw-r--r-- | video/out/vo_wlshm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/video/out/vo_wlshm.c b/video/out/vo_wlshm.c index 3b328faee6..43a1318c8d 100644 --- a/video/out/vo_wlshm.c +++ b/video/out/vo_wlshm.c @@ -201,6 +201,11 @@ static int resize(struct vo *vo) const int32_t height = wl->scaling * mp_rect_h(wl->geometry); struct buffer *buf; + struct wl_region *region = wl_compositor_create_region(wl->compositor); + wl_region_add(region, 0, 0, width, height); + wl_surface_set_opaque_region(wl->surface, region); + wl_region_destroy(region); + vo->want_redraw = true; vo->dwidth = width; vo->dheight = height; |