weston/clients
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
..
.gitignore protocol: add sub-surfaces 2013-05-10 14:05:59 -04:00
calibrator.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
clickdot.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
cliptest.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
desktop-shell.c desktop-shell: better error logging 2013-04-15 20:57:55 -04:00
dnd.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
editor.c editor: Removed unused utf8_characters() function 2013-05-10 12:51:08 -04:00
eventdemo.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
flower.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
gears.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
glmatrix.c Add signedness warning flag and fix fallout 2012-03-30 11:52:39 -04:00
image.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
keyboard.c keyboard: Fix offsets when deleting text 2013-05-06 20:26:20 -04:00
Makefile.am protocol: add sub-surfaces 2013-05-10 14:05:59 -04:00
matrix3.xpm clients: import glmatrix.c and matrix3.xpm 2011-11-18 14:45:04 +02:00
resizor.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
screenshot.c screenshot: Print warning if we're not launched from weston 2013-02-13 13:41:07 -05:00
simple-egl.c simple-egl: Add support for EGL_EXT_swap_buffer_with_damage 2013-05-08 11:39:59 -04:00
simple-shm.c compositor: Only send release event in response to wl_surface.attach 2013-03-05 15:35:47 -05:00
simple-touch.c clients: add global_remove handler stubs 2013-01-24 16:42:38 -05:00
smoke.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
tablet-shell.c clients: tablet-shell: Wait for set_homescreen hits the server 2013-04-09 15:05:32 -04:00
terminal.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
transformed.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
view.c view: g_type_init() is deprecated in glib >= 2.35 2013-05-02 16:22:27 -04:00
weston-info.c clients: add global_remove handler stubs 2013-01-24 16:42:38 -05:00
weston-simple-im.c text: Rename input_method to wl_input_method 2013-05-02 17:18:46 -04:00
window.c window: implement per-surface redraws 2013-05-10 14:35:53 -04:00
window.h window: create sub-surfaces 2013-05-10 14:35:53 -04:00
wscreensaver-glue.c screensaver: fix decoding of transparency in xpm files 2012-09-06 21:08:12 -04:00
wscreensaver-glue.h Never include wayland-util.h directly 2011-11-22 09:35:14 -05:00
wscreensaver.c Pass argc pointer to parse_options() 2013-02-20 15:27:49 -05:00
wscreensaver.h Add signedness warning flag and fix fallout 2012-03-30 11:52:39 -04:00