9df6f0c524
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 |
||
---|---|---|
.. | ||
xsettings | ||
clutter-backend-x11-private.h | ||
clutter-backend-x11.c | ||
clutter-backend-x11.h | ||
clutter-device-manager-x11.c | ||
clutter-device-manager-x11.h | ||
clutter-event-x11.c | ||
clutter-input-device-x11.c | ||
clutter-input-device-x11.h | ||
clutter-keymap-x11.c | ||
clutter-keymap-x11.h | ||
clutter-settings-x11.h | ||
clutter-stage-x11.c | ||
clutter-stage-x11.h | ||
clutter-x11-texture-pixmap.c | ||
clutter-x11-texture-pixmap.h | ||
clutter-x11.h |