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
1e2bc68171
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>
dev
Robert Mader 3 years ago committed by Pekka Paalanen
parent e67a0cb57c
commit 4090f0eb6f
  1. 4
      clients/simple-egl.c

@ -497,9 +497,7 @@ redraw(struct window *window)
if (window->opaque || window->fullscreen) { if (window->opaque || window->fullscreen) {
region = wl_compositor_create_region(window->display->compositor); region = wl_compositor_create_region(window->display->compositor);
wl_region_add(region, 0, 0, wl_region_add(region, 0, 0, INT32_MAX, INT32_MAX);
window->geometry.width,
window->geometry.height);
wl_surface_set_opaque_region(window->surface, region); wl_surface_set_opaque_region(window->surface, region);
wl_region_destroy(region); wl_region_destroy(region);
} else { } else {

Loading…
Cancel
Save