mutter/clutter
Robert Bragg b499696d83 Use paint volumes to do automatic culling
This uses actor paint volumes to perform culling during
clutter_actor_paint.

When performing a clipped redraw (because only a few localized actors
changed) then as we traverse the scenegraph painting the actors we can
now ignore actors that don't intersect the clip region. Early testing
shows this can have a big performance benefit; e.g. 100% fps improvement
for test-state with culling enabled and we hope that there are even much
more compelling examples than that in the real world,

Most Clutter applications are 2Dish interfaces and have quite a lot of
actors that get continuously painted when anything is animated. The
dynamic actors are often localized to an area of user focus though so
with culling we can completely avoid painting any of the static actors
outside the current clip region.

Obviously the cost of culling has to be offset against the cost of
painting to determine if it's a win, but our (limited) testing suggests
it should be a win for most applications.

Note: we hope we will be able to also bring another performance bump
from culling with another iteration - hopefully in the 1.6 cycle - to
avoid doing the culling in screen space and instead do it in the stage's
model space. This will hopefully let us minimize the cost of
transforming the actor volumes for culling.
2010-09-29 15:12:58 +01:00
..
cally cally: Do not use deprecated functions 2010-09-29 14:13:51 +01:00
cogl material: Don't prune ancestry if it owns some layers 2010-09-24 00:12:14 +01:00
egl Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
fruity Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
glx Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
json json: Allow NULL as a value for strings, arrays and objects 2010-09-25 20:23:41 +01:00
osx Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
win32 Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
x11 Queue clipped redraws work in terms of paint volumes 2010-09-29 15:12:57 +01:00
clutter-action.c docs: Description fixes for Action and Constraint 2010-05-26 14:09:24 +01:00
clutter-action.h Add named modifiers for Action and Constraint 2010-05-20 11:19:51 +01:00
clutter-actor-meta-private.h actor: Add ActorMeta, a base class for actor modifiers 2010-05-17 16:42:10 +01:00
clutter-actor-meta.c docs: Add sub-classing notes on ActorMeta and Constraint 2010-09-17 14:54:31 +01:00
clutter-actor-meta.h actor: Add ActorMeta, a base class for actor modifiers 2010-05-17 16:42:10 +01:00
clutter-actor.c Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
clutter-actor.h Queue clipped redraws work in terms of paint volumes 2010-09-29 15:12:57 +01:00
clutter-align-constraint.c constraint: Re-implement using update_allocation() 2010-09-17 12:17:50 +01:00
clutter-align-constraint.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
clutter-alpha.c docs: Fixes for gtk-doc 2010-09-03 16:12:24 +01:00
clutter-alpha.h
clutter-animatable.c animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animatable.h animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animation.c animation: Allow detaching an animation from an actor 2010-09-10 11:18:53 +01:00
clutter-animation.h animation: Allow detaching an animation from an actor 2010-09-10 11:18:53 +01:00
clutter-animator.c animator: Code style fixes 2010-09-29 11:44:46 +01:00
clutter-animator.h animator,state: Mark variadic functions that ends with NULL 2010-06-07 14:22:26 +01:00
clutter-backend.c Try to clean up how we handle actor transformations 2010-09-13 18:18:34 +01:00
clutter-backend.h Constify Event accessors and copy method 2010-09-08 15:15:57 +01:00
clutter-behaviour-depth.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-depth.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-ellipse.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-ellipse.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-opacity.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-opacity.h docs: Fix gtk-doc warnings 2010-04-22 16:39:18 +01:00
clutter-behaviour-path.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-path.h docs: Fix the 'Since' annotation for some functions 2009-11-19 11:51:21 +00:00
clutter-behaviour-rotate.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-rotate.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-scale.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-scale.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-behaviour.h
clutter-bezier.c analysis: Use static functions when possible 2010-06-01 12:08:18 +01:00
clutter-bezier.h
clutter-bin-layout.c Merge branch 'wip/table-layout' 2010-08-11 11:32:44 +01:00
clutter-bin-layout.h [layout, docs] Clean up BinLayout documentation 2009-10-14 11:31:29 +01:00
clutter-bind-constraint.c constraint: Re-implement using update_allocation() 2010-09-17 12:17:50 +01:00
clutter-bind-constraint.h constraint: Re-implement using update_allocation() 2010-09-17 12:17:50 +01:00
clutter-binding-pool.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-binding-pool.h
clutter-blur-effect.c blur-effect: fix paint volume padding 2010-09-29 15:12:57 +01:00
clutter-blur-effect.h effect: Add BlurEffect 2010-06-03 14:10:55 +01:00
clutter-box-layout.c box-layout: Small cleanups 2010-09-22 14:22:23 +01:00
clutter-box-layout.h Add "homogeneous" mode to ClutterBoxLayout. 2010-03-25 09:41:54 +00:00
clutter-box.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-box.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-cairo-texture.c introspection: Add missing (out) annotations 2010-09-08 15:43:07 +01:00
clutter-cairo-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-child-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-child-meta.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-click-action.c click-action: Add get_button() 2010-08-26 16:39:39 +01:00
clutter-click-action.h click-action: Add get_button() 2010-08-26 16:39:39 +01:00
clutter-clone.c clone: scale src with apply_transform not cogl_scale 2010-09-13 18:18:35 +01:00
clutter-clone.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-color.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-color.h [misc] Update headers #endif comments 2009-06-29 21:37:02 +02:00
clutter-colorize-effect.c effects: Make sure we're using GLSL 1.10 2010-09-21 13:32:31 +01:00
clutter-colorize-effect.h effect: Add ColorizeEffect 2010-06-03 14:10:55 +01:00
clutter-constraint.c docs: Add sub-classing notes on ActorMeta and Constraint 2010-09-17 14:54:31 +01:00
clutter-constraint.h constraint: Add ::update_allocation() 2010-09-17 12:17:50 +01:00
clutter-container.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-container.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-debug.h Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
clutter-deform-effect.c Replace cogl_color_set_from_* with cogl_color_init_from_* 2010-09-03 16:58:47 +01:00
clutter-deform-effect.h effect: Add DeformEffect 2010-06-10 18:40:29 +01:00
clutter-deprecated.h Fix copy-and-paste errors in the deprecation macros 2009-07-21 09:22:38 +01:00
clutter-desaturate-effect.c effects: Make sure we're using GLSL 1.10 2010-09-21 13:32:31 +01:00
clutter-desaturate-effect.h effect: Add DesaturateEffect 2010-06-03 14:10:55 +01:00
clutter-device-manager.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-device-manager.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-drag-action.c docs: Fix the name of the parameters 2010-09-15 16:12:56 +01:00
clutter-drag-action.h drag-action: Added x-drag-threshold and y-drag-threshold properties 2010-09-07 10:40:49 +01:00
clutter-effect.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-effect.h paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-enum-types.c.in Use g_once when registering enumeration types 2009-05-29 12:40:23 +01:00
clutter-enum-types.h.in
clutter-event.c Constify Event accessors and copy method 2010-09-08 15:15:57 +01:00
clutter-event.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
clutter-feature.c Emit a critical warning if features are not initialized 2010-03-18 14:15:33 +00:00
clutter-feature.h docs: Document SWAP_EVENTS feature flag 2010-02-15 19:03:37 +00:00
clutter-fixed-layout.c layout-manager: Implement set_container() 2010-06-07 22:40:34 +01:00
clutter-fixed-layout.h [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-fixed.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-fixed.h
clutter-flow-layout.c flow-layout: Blow the cached preferred size if needed 2010-09-17 12:43:23 +01:00
clutter-flow-layout.h [layout] Remove FlowLayout:wrap 2009-10-14 11:31:30 +01:00
clutter-frame-source.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-frame-source.h Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-group.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-group.h [group] avoid double evaluation of arguments in clutter_group_add 2009-04-08 18:19:46 +01:00
clutter-id-pool.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-id-pool.h
clutter-input-device.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-input-device.h device: Allow updating devices from embedding toolkits 2010-02-17 18:21:50 +00:00
clutter-interval.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-interval.h interval: Add a pointer variant to compute_value() 2010-05-24 15:06:14 +01:00
clutter-json.h.in [json] Include only json-glib.h 2009-08-12 15:31:16 +01:00
clutter-keysyms-compat.h keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms-table.h
clutter-keysyms-update.pl keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms.h keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-layout-manager.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-layout-manager.h layout: Let begin_animation() return the Alpha 2009-12-13 01:23:54 +00:00
clutter-layout-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-layout-meta.h layout: Add padding to LayoutMeta 2009-12-02 11:36:25 +00:00
clutter-list-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-list-model.h
clutter-main.c Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
clutter-main.h Initialize accessibility support on clutter_init 2010-07-05 16:45:43 +01:00
clutter-marshal.list drag-action: Remove the press event button 2010-06-12 17:45:54 +01:00
clutter-master-clock.c g_source_set_name on custom sources (if available) 2010-06-07 12:05:24 +01:00
clutter-master-clock.h ensure next iteration 2009-07-10 11:38:42 +01:00
clutter-media.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-media.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-model-private.h [model] Add a private row mutator to ClutterModelIter 2009-05-05 20:18:28 +01:00
clutter-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-model.h Add more padding in Model and ModelIter classes 2009-05-20 16:06:09 +01:00
clutter-offscreen-effect.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-offscreen-effect.h offscreen-effect: Rename create_target to create_buffer 2010-09-01 18:05:53 +01:00
clutter-page-turn-effect.c Replace cogl_color_set_from_* with cogl_color_init_from_* 2010-09-03 16:58:47 +01:00
clutter-page-turn-effect.h effect: Add PageTurnEffect 2010-06-10 18:40:29 +01:00
clutter-path.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-path.h [path] MOVE_TO and LINE_TO only use a pair of coordinates 2009-10-06 10:43:41 +01:00
clutter-private.h Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
clutter-profile.c profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-profile.h profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-rectangle.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-rectangle.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-score.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-score.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-script-parser.c introspection: Add missing (out) annotations 2010-09-08 15:43:07 +01:00
clutter-script-private.h script: Let ClutterActor parse behaviours 2010-07-09 14:59:32 +01:00
clutter-script.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-script.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-scriptable.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-scriptable.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-settings.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-settings.h settings: Migrate Backend settings to a new object 2010-06-21 15:55:36 +01:00
clutter-shader-effect.c Remove last uses of cogl_program_uniform* 2010-08-12 17:08:26 +01:00
clutter-shader-effect.h docs: Effects fixes for the API reference 2010-06-03 14:34:41 +01:00
clutter-shader-types.c shader-types: Check the size of the values 2010-06-16 17:14:57 +01:00
clutter-shader-types.h [cogl] Remove the COGL{enum,int,uint} typedefs 2009-05-12 14:53:44 +01:00
clutter-shader.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-shader.h [shader] Remove deprecated set_uniform_1f() 2009-04-03 12:47:21 +01:00
clutter-stage-manager.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-stage-manager.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-stage-window.c stage-window: Add argument guards 2010-07-20 14:39:01 +01:00
clutter-stage-window.h Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-stage.c Use paint volumes to do automatic culling 2010-09-29 15:12:58 +01:00
clutter-stage.h stage: Add the NO_CLEAR_ON_PAINT hint 2010-07-13 14:57:48 +01:00
clutter-state.c docs: Description fixes for State.set_animator() 2010-09-20 14:31:53 +01:00
clutter-state.h state: Return a boolean when getting the key value 2010-08-08 19:17:14 +01:00
clutter-table-layout.c table-layout: Invert row/column in arguments 2010-09-23 15:17:58 +01:00
clutter-table-layout.h table-layout: Invert row/column in arguments 2010-09-23 15:17:58 +01:00
clutter-text.c keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-text.h text: Add :font-description 2010-02-03 14:38:13 +00:00
clutter-texture.c texture: Forward queue redraw/relayout for fbos 2010-09-29 15:12:57 +01:00
clutter-texture.h [texture] Support picking textures according to their alpha channel 2010-05-28 16:07:17 +01:00
clutter-timeline.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-timeline.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-timeout-interval.c Whitespace fixes 2010-02-01 10:40:34 +00:00
clutter-timeout-interval.h Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-timeout-pool.c g_source_set_name on custom sources (if available) 2010-06-07 12:05:24 +01:00
clutter-timeout-pool.h docs: API reference fixes 2010-09-20 13:15:44 +01:00
clutter-types.h paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-units.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-units.h units: Cache the pixels value inside Units 2009-10-16 15:25:37 +01:00
clutter-util.c Add P_() macro for translating property strings 2010-07-15 12:09:01 +01:00
clutter-util.h Deprecate clutter_util_next_p2() 2010-02-06 10:49:33 +00:00
clutter-version.h.in docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter.h Add ClutterTableLayout, a layout showing children in rows and columns 2010-08-10 23:20:06 +01:00
Makefile.am introspection: Build ClutterJson before Clutter 2010-09-21 13:17:51 +01:00