mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
waylandsink: Use G_MAXINT32 for opaque regions
`gst_wl_window_set_opaque` does not get called on window resizes, potentially leaving opaque regions too small. According to the spec opaque regions can be bigger than the surface size - parts that fall outside of the surface will get ignored. Thus we can can simply use `G_MAXINT32` and be sure that the whole surfaces will always be covered. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1446>
This commit is contained in:
parent
d5f5a1c25f
commit
1e2bc68171
1 changed files with 2 additions and 4 deletions
|
@ -433,16 +433,14 @@ gst_wl_window_set_opaque (GstWlWindow * window, const GstVideoInfo * info)
|
|||
|
||||
/* Set area opaque */
|
||||
region = wl_compositor_create_region (window->display->compositor);
|
||||
wl_region_add (region, 0, 0, window->render_rectangle.w,
|
||||
window->render_rectangle.h);
|
||||
wl_region_add (region, 0, 0, G_MAXINT32, G_MAXINT32);
|
||||
wl_surface_set_opaque_region (window->area_surface, region);
|
||||
wl_region_destroy (region);
|
||||
|
||||
if (!GST_VIDEO_INFO_HAS_ALPHA (info)) {
|
||||
/* Set video opaque */
|
||||
region = wl_compositor_create_region (window->display->compositor);
|
||||
wl_region_add (region, 0, 0, window->render_rectangle.w,
|
||||
window->render_rectangle.h);
|
||||
wl_region_add (region, 0, 0, G_MAXINT32, G_MAXINT32);
|
||||
wl_surface_set_opaque_region (window->video_surface, region);
|
||||
wl_region_destroy (region);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue