gnome-shell/src
Lionel Landwerlin 318283fc70 st: optimize box-shadow rendering
Currently the box-shadow is rendering is done like this :

The first time we want to render a node that requires a box-shadow, St
creates an cogl offscreen surface of the size of the allocation and
renders the box into this offscreen buffer using modulation on the
alpha channel, this buffer is then blurred according to the CSS
parameters.

The problem with this method is that every time an StWidget is
resized, its box-shadow offscreen buffer has to be resized and
therefore rendered and blurred.

This patches propose an optimization for this use case by rendering
the box-shadow only once but at a size that is independent of the
StWidget's size. Then every time we need to paint this box-shadow, we
just render this offscreen buffer using a 9-slices.

This method only works when the allocation of the widget is bigger
than the minimum shadow size on which we can apply a 9-slices, that is
given my the radius of the corners. If the allocation is smaller than
this minimum size, we then fallback to the fully render/blur the
shadow (like before this patch).

https://bugzilla.gnome.org/show_bug.cgi?id=689858
2013-07-09 11:24:26 +01:00
..
calendar-server Calendar: only show events when configured in Evolution 2013-03-04 18:59:30 +01:00
gvc@ed0ec42401 Update gvc 2013-07-01 13:20:02 -04:00
hotplug-sniffer Remove use of deprecated g_type_init () ... 2012-10-17 22:49:32 +02:00
st st: optimize box-shadow rendering 2013-07-09 11:24:26 +01:00
tray etc: Use generic marshaller 2012-01-25 19:03:13 -05:00
data-to-c.pl scroll-view-fade: Put the shader in another file 2012-11-29 16:17:09 -05:00
gnome-shell-extension-prefs.in Fix typo in gnome-shell-extension-prefs 2013-02-04 12:00:42 +01:00
gnome-shell-extension-tool.in st: Remove StIconType 2012-08-29 16:41:09 -03:00
gnome-shell-jhbuild.in gnome-shell-jhbuild: Remove old envvar 2012-12-23 21:17:40 -05:00
gnome-shell-perf-tool.in gnome-shell-perf-tool: Fix various problems 2012-11-05 13:08:25 -05:00
gnome-shell-plugin.c Revert "Add an OSD for sticky modifiers" 2013-04-15 18:39:52 -04:00
gtkactionmuxer.c gtkactionmuxer: Reintroduce the passing of event timestamps 2013-05-13 18:34:26 -04:00
gtkactionmuxer.h Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobservable.c Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobservable.h Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobserver.c Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobserver.h Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkmenutracker.c remoteMenu: Port to GtkMenuTrackerItem 2013-05-13 18:34:26 -04:00
gtkmenutracker.h remoteMenu: Port to GtkMenuTrackerItem 2013-05-13 18:34:26 -04:00
gtkmenutrackeritem.c remoteMenu: Port to GtkMenuTrackerItem 2013-05-13 18:34:26 -04:00
gtkmenutrackeritem.h remoteMenu: Port to GtkMenuTrackerItem 2013-05-13 18:34:26 -04:00
main.c main: Move pref overrides to JS 2013-06-07 19:52:10 +02:00
Makefile-calendar-server.am build: Fix distcheck 2012-08-06 16:13:54 +02:00
Makefile-hotplug-sniffer.am sniffer: add a mimetype sniffer helper executable 2011-07-13 14:39:35 -04:00
Makefile-st.am build: Fix distcheck 2012-12-05 23:35:35 +01:00
Makefile-tray.am etc: Use generic marshaller 2012-01-25 19:03:13 -05:00
Makefile.am Fix build one more time 2013-05-13 18:38:35 -04:00
run-js-test.c Remove use of deprecated g_type_init () ... 2012-10-17 22:49:32 +02:00
shell-app-private.h shell-app: Remove MATCH_MULTIPLE_{PREFIX,SUFFIX} 2011-10-13 17:46:45 +02:00
shell-app-system-private.h apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
shell-app-system.c app-system: Remove last real use of shell_app_get_tree_entry 2013-05-12 14:45:36 -04:00
shell-app-system.h Remove builtin settings search provider 2013-02-18 16:56:45 +01:00
shell-app-usage.c Replace 'enable-app-monitoring' setting 2013-05-18 20:12:49 +02:00
shell-app-usage.h shell-app-usage: Remove unused parameter 2013-02-20 00:18:56 +01:00
shell-app.c Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
shell-app.h shell-app: track the busy state of GApplications 2013-04-19 13:54:56 -04:00
shell-embedded-window-private.h shell-embedded-window: Remove hacks for old and fixed Clutter bug 2012-07-13 17:28:50 -04:00
shell-embedded-window.c Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-embedded-window.h Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-enum-types.c.in Create GTypes for Shell namespace 2010-04-12 16:01:54 -04:00
shell-enum-types.h.in Create GTypes for Shell namespace 2010-04-12 16:01:54 -04:00
shell-generic-container.c shell-generic-container: Exclude skip_paint actors from the paint volume 2013-03-01 19:13:10 +01:00
shell-generic-container.h st: Remove st-container 2012-02-28 08:14:06 -05:00
shell-global-private.h Revert "Add an OSD for sticky modifiers" 2013-04-15 18:39:52 -04:00
shell-global.c layout: Don't use the input mode to block events to windows 2013-07-08 17:05:17 -04:00
shell-global.h layout: Don't use the input mode to block events to windows 2013-07-08 17:05:17 -04:00
shell-gtk-embed.c shell-gtk-embed: Lower tray icon windows to the bottom of the stack 2013-05-30 00:57:37 +02:00
shell-gtk-embed.h Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-invert-lightness-effect.c Magnifier: Add brightness and contrast functionality 2012-05-16 18:59:33 -04:00
shell-invert-lightness-effect.h Magnifier: Add brightness and contrast functionality 2012-05-16 18:59:33 -04:00
shell-js.c shell-js: Adapt to new gjs interface 2013-05-07 14:35:34 -04:00
shell-js.h Switch string formatting to the one inside gjs 2012-05-24 15:38:44 -04:00
shell-keybinding-modes.h panel: Add keybinding mode for top bar popups and use it 2013-04-26 17:32:53 +02:00
shell-keyring-prompt.c components: Allow cancelling of dialog between prompts 2013-05-09 05:58:55 +02:00
shell-keyring-prompt.h Add gnome-keyring prompter 2012-02-29 20:16:14 +01:00
shell-menu-tracker.c remoteMenu: Add support for submenu items 2013-05-13 18:34:26 -04:00
shell-menu-tracker.h remoteMenu: Add support for submenu items 2013-05-13 18:34:26 -04:00
shell-mount-operation.c shell: Use generic marshaller 2012-01-25 19:03:48 -05:00
shell-mount-operation.h *.[ch]: add emacs modeline to C files that were missing it 2011-10-11 08:05:17 -04:00
shell-network-agent.c Migrate from libgnome-keyring to libsecret 2013-03-04 18:47:52 +01:00
shell-network-agent.h network-agent: Remove prototype of unused function 2013-07-02 14:17:38 -04:00
shell-perf-helper.c gnome-shell-perf-helper: add server for creating test windows 2011-03-11 19:21:07 -05:00
shell-perf-log.c Doc fixes 2011-11-07 15:24:59 -05:00
shell-perf-log.h Dump a complete report from a performance run, as JSON 2010-05-21 00:18:45 -04:00
shell-polkit-authentication-agent.c Rearchitect the Shell to have a components system 2012-09-04 18:42:44 -03:00
shell-polkit-authentication-agent.h Rearchitect the Shell to have a components system 2012-09-04 18:42:44 -03:00
shell-recorder-src.c shell-recorder-src: Set frame duration 2012-11-19 19:17:31 +01:00
shell-recorder-src.h Add emacs modelines to all .c and .h files that were missing them 2009-10-27 11:27:45 -04:00
shell-recorder.c recorder: Hide cursor while magnifier is active 2013-05-22 18:33:16 +02:00
shell-recorder.h shell-recorder: Make drawing the cursor optional 2013-05-10 19:49:01 +02:00
shell-screenshot.c screenshot: Hide cursor while magnifier is active 2013-05-22 18:33:16 +02:00
shell-screenshot.h screenshot: change API to return the filename used for saving 2013-01-03 12:56:45 +01:00
shell-secure-text-buffer.c Use non-pageable memory for gnome-keyring passwords 2012-02-29 20:24:02 +01:00
shell-secure-text-buffer.h Use non-pageable memory for gnome-keyring passwords 2012-02-29 20:24:02 +01:00
shell-slicer.c st: Remove _st_allocate_fill 2012-02-28 08:14:06 -05:00
shell-slicer.h Don't generate st.h in a subdir 2010-02-22 19:37:49 -05:00
shell-stack.c St: don't focus hidden actors 2012-09-10 21:23:25 +02:00
shell-stack.h st: Remove st-container 2012-02-28 08:14:06 -05:00
shell-tp-client.c telepathyClient: Remove some obsolete wrappers 2012-08-16 20:10:24 -04:00
shell-tp-client.h telepathyClient: Remove some obsolete wrappers 2012-08-16 20:10:24 -04:00
shell-tray-icon.c Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-tray-icon.h messageTray: forward clicks on trayicon SummaryItems to the icon 2011-03-21 14:56:53 -04:00
shell-tray-manager.c Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-tray-manager.h Don't use ClutterX11TexturePixmap directly to embed docked windows 2013-03-18 16:49:47 +00:00
shell-util.c loginManager: Remove sessionActive property 2013-02-05 00:01:33 +01:00
shell-util.h loginManager: Remove sessionActive property 2013-02-05 00:01:33 +01:00
shell-window-tracker-private.h apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
shell-window-tracker.c WindowTracker: fix ref counting bug in get_app_for_window() 2012-06-27 19:27:30 +02:00
shell-window-tracker.h autoWorkspaces: fix creation of new workspaces with application launchers 2012-03-16 16:41:30 +01:00
shell-wm-private.h windowManager: Implement keybinding_filter hook 2012-11-17 01:44:22 +01:00
shell-wm.c windowManager: Implement keybinding_filter hook 2012-11-17 01:44:22 +01:00
shell-wm.h shell-wm: Remove takeover_keybinding() 2011-11-22 00:42:28 +01:00
shell-xfixes-cursor.c shell: Use generic marshaller 2012-01-25 19:03:48 -05:00
shell-xfixes-cursor.h Do not use the default stage 2011-12-15 16:13:29 -05:00
test-recorder.c shell-recorder: Optionally return the filename of the recording 2013-05-10 19:49:01 +02:00