Go to file
Pekka Paalanen 40cb67b2ac window: implement per-surface redraws
Add redraw_needed flag to all surfaces, in addition to having one in
window. The window redraw_needed flag is changed to force a redraw of
the whole window, regardless of frame events.

widget_schedule_redraw() now schedules the redraw only for the surface,
where the widget is on. window_schedule_redraw() is equivalent to
scheduling a redraw for all (sub-)surfaces of the window.

We still use only one deferred task for all redraws.

surface_redraw() will skip the redraw, if the window does not force a
redraw and the surface does not need a redraw. It will also skip the
redraw, if the frame callback from the previous redraw has not triggered
yet. When the frame callback later arrives, the redraw task will be
scheduled, if the surface still needs a redraw.

If the window forces a redraw, the redraw is executed even if there is a
pending frame callback. This is for resizing: resizing should trigger a
window repaint, as it really wants to update all surfaces in one go, to
apply possible sub-surface size and position changes. Resizing is the
only thing that makes a window force a redraw.

With this change, subsurfaces demo can avoid repainting the cairo
sub-surface while still animating the GL sub-surface.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2013-05-10 14:35:53 -04:00
clients window: implement per-surface redraws 2013-05-10 14:35:53 -04:00
data window.c: frame_button: Maximize, minimize, close, icon buttons in window frame 2012-05-10 16:19:33 -04:00
man weston.ini: document background-type 2013-05-01 13:40:50 -04:00
protocol protocol: add sub-surfaces 2013-05-10 14:05:59 -04:00
shared Fix compiler warnings 2013-04-03 20:40:44 -04:00
src shell: account for the subsurfaces when going fullscreen or maximizing 2013-05-10 14:35:33 -04:00
tests tests: add sub-surface protocol tests 2013-05-10 14:32:58 -04:00
wcap wcap: Fix typo in usage output. 2012-07-23 14:25:14 -04:00
.gitignore gitignore: Ignore test-driver 2013-03-28 14:04:05 -04:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac Add initial color management framework code 2013-05-10 12:51:08 -04:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am Makefile.am: Distribute weston.ini sample 2013-02-25 13:04:40 -05:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README Flesh out README a bit, link to building instructions 2012-07-20 12:26:23 -04:00
weston.ini Add initial color management framework code 2013-05-10 12:51:08 -04:00

Weston

Weston is the reference implementation of a Wayland compositor, and a
useful compositor in its own right.  Weston has various backends that
lets it run on Linux kernel modesetting and evdev input as well as
under X11.  Weston ships with a few example clients, from simple
clients that demonstrate certain aspects of the protocol to more
complete clients and a simplistic toolkit.  There is also a quite
capable terminal emulator (weston-terminal) and an toy/example desktop
shell.  Finally, weston also provides integration with the Xorg server
and can pull X clients into the Wayland desktop and act as a X window
manager.

Refer to http://wayland.freedesktop.org/building.html for buiding
weston and its dependencies.