clients/simple-egl: Use INT32_MAX for opaque region

Setting the opaque region correctly is common source of error for
clients that simply want to express that a whole surface is opaque.
This is especially true once buffer_scale and buffer_transform come
into play, as unlike for damage, where buffer_damage is the
encouraged and user friendly way today, opaque regions are always
in logical coordinates.

As faulty opaque regions don't have a visual impact in these cases
but only increase resource consumption, these errors often remain
for long times. See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/1e2bc681712d62081f49e8e74723a596d1578a34
for one of many examples.

Give an easy example how to set the opaque region in a conformant
and reliable way.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
Robert Mader
2022-05-25 15:25:52 +02:00
committed by Pekka Paalanen
parent e67a0cb57c
commit 4090f0eb6f
+1 -3
View File
@@ -497,9 +497,7 @@ redraw(struct window *window)
if (window->opaque || window->fullscreen) {
region = wl_compositor_create_region(window->display->compositor);
wl_region_add(region, 0, 0,
window->geometry.width,
window->geometry.height);
wl_region_add(region, 0, 0, INT32_MAX, INT32_MAX);
wl_surface_set_opaque_region(window->surface, region);
wl_region_destroy(region);
} else {