[RFC] damage dealing rework
Pekka Paalanen
ppaalanen at gmail.com
Fri Feb 10 07:21:23 PST 2012
Hi Kristian,
here is most of what we talked about the other day, about moving damage
calls into weston_surface_update_transform(). I also took Tiago's "misc
cleanup" patch set, since it needed rebasing after these changes.
I haven't tested this much, so now it's just an RFC, but you could also
pull it.
The major point of this patch series is that it fixes the
surface transformations vs. damage handling. Previously only
weston_compositor_configure() got that right, and all transformations
worked by luck or by overkill.
The things I seem to have forgotten:
- round off fractions from geometry.x,y when we return to
non-transformed surface state
- checking notify_motion
I also noticed that shell.c map(), as big and hairy as it is, also has a
bug. If you trigger a popup type surface while locked, the surface will
have output set, but added to the hidden surface list. Soon after, the
compositor likely crashes. The bug was there even before.
The way to trigger that is to open the window titlebar context menu of
the unlock dialog. Hrrrrm, what would happen if I could choose "close"
from that...
The following changes since commit 6f82cf5dc5366fd903a1c04218bb910b1c0c3950:
configure: Fix build on debian by avoiding bashisms in the test command. (2012-02-09 14:17:54 -0500)
are available in the git repository at:
git://git.collabora.co.uk/git/user/pq/wayland-demos.git damage-fixes1
Pekka Paalanen (12):
shell: remove excessive damage from rotating
compositor: split weston_surface_damage_below()
compositor: split weston_surface_update_transform()
compositor: move surface_to_global_float() definition
compositor: use floats in computing bounding box
compositor: simplify weston_surface_damage_rectangle()
compositor: let update_transform deal damage
compositor: clarify update_transform vs. repaint
compositor: move opaque tracking into transform
compositor: move output assignment to update_transform
shell: replace identity calls to weston_surface_configure()
shell: remove two redundant statements from map()
Tiago Vignatti (5):
window: explicitly set TYPE_TOPLEVEL for new windows
window: simplify a bit widget_set_size and widget_set_allocation
clients: fix spelling
shell: remove duplicated code
compositor: make functions static
clients/cairo-util.c | 16 ++--
clients/gears.c | 2 +-
clients/window.c | 6 +-
src/compositor.c | 253 ++++++++++++++++++++++++++++----------------------
src/compositor.h | 16 +---
src/shell.c | 50 +++--------
src/tablet-shell.c | 1 +
7 files changed, 166 insertions(+), 178 deletions(-)
Thanks,
pq
More information about the wayland-devel
mailing list