compositor-wayland: fix damage coordinates with pixman renderer
authorArmin Krezović <krezovic.armin@gmail.com>
Mon, 23 Oct 2017 14:10:01 +0000 (16:10 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 24 Oct 2017 09:51:35 +0000 (12:51 +0300)
commit2b3c97d560a8a60d6029be9795e81712e0868307
treebe08be79f35807c460070302a682d29741de3e5e
parent99c92e7e52f22b030aa804af4e0b1acb5dc09620
compositor-wayland: fix damage coordinates with pixman renderer

Damage coordinates are in global coordinate space, and they need to
be translated to local coordinate space so multiple outputs can work.

This path now matches the similar path in the X11 backend.

This patch fixes the appearance of multiple windows in the parent
compositor. Previously, all windows except the one with nested output
position 0,0 would have their damage for the parent wl_surface always
fall outside of the wl_surface, save the decorations which were handled
separately. If the parent compositor was Weston/GL, this would lead to
the output area remaining black as partial GL texture uploads would
practically never update the texture. If the parent compositor was
Weston/pixman, the parent windows would not update on screen unless
something else caused the area to be repainted.

[Pekka: adjusted commit message]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Daniel Stone <daniels@collabora.com>
libweston/compositor-wayland.c