1
0
Fork 0
mutter-performance-source/clutter/x11
Owen W. Taylor 9df6f0c524 ClutterX11TexturePixmap: Optimize ConfigureEvent handling
ClutterX11TexturePixmap watches for configure events to tell when it
needs to name a new pixmap for the window. However, ConfigureEvents
occur on moves in addition to resizes, and doing round trips and
naming new pixmaps every time a window is moved is a real performance
killer.

Add clutter_x11_texture_pixmap_sync_window_internal() that takes the
size/position of the window as arguments rather than always calling
XGetWindowAttributes. This allows us to bypass all work other than
notifying the window-x/window-y properties when we get a ConfigurEvent
for a move.

The last received width/height is saved to allow us to also omit
XGetWindowAttributes on MapNotify events.

The public clutter_x11_texture_pixmap_sync_window() becomes a bit less
efficient since we no longer combine the roundtrips for
XGetWindowAttributes() and XCompositeNameWindowPixmap(), but it appears
to have no callers in current publicly available code.

Several FIXME's are added for areas where there are still weird things
going on in the code or improvements could be made.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2356
2010-11-24 16:19:21 +00:00
..
xsettings x11: Add the XSETTINGS machinery 2010-06-21 15:55:36 +01:00
clutter-backend-x11-private.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-backend-x11.c x11: Check for initialized context when enabling ARGB visuals 2010-11-24 12:02:38 +00:00
clutter-backend-x11.h Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-device-manager-x11.c Clean up clutter-private.h/1 2010-10-21 10:54:14 +01:00
clutter-device-manager-x11.h device: Impose per-backend DeviceManager 2010-02-17 17:46:48 +00:00
clutter-event-x11.c x11: only queue clipped redraw for Expose 2010-11-23 16:31:49 +00:00
clutter-input-device-x11.c Clean up clutter-private.h/1 2010-10-21 10:54:14 +01:00
clutter-input-device-x11.h device: Make InputDevice an object and subclass it for X11 2010-01-20 00:38:08 +00:00
clutter-keymap-x11.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-keymap-x11.h x11: Use XKB to translate keycodes into key symbols 2010-07-13 11:54:44 +01:00
clutter-settings-x11.h x11: Add the XSETTINGS machinery 2010-06-21 15:55:36 +01:00
clutter-stage-x11.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-stage-x11.h x11: minimize nasty artefacts when resizing windows 2010-09-29 15:12:59 +01:00
clutter-x11-texture-pixmap.c ClutterX11TexturePixmap: Optimize ConfigureEvent handling 2010-11-24 16:19:21 +00:00
clutter-x11-texture-pixmap.h x11: Clean up TexturePixmap header and private data structure 2010-07-21 15:14:36 +01:00
clutter-x11.h build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00