mutter/clutter
Robert Bragg d7e86e2696 picking: Fix tracking of pick buffer validity
We have an optimization to track when there are multiple picks per
frames so we can do a full render of the pick buffer to reduce the
number of pick renders for a static scene.

There were two problems with how we were tracking this state though.
Firstly we were tracking this information in the ClutterMainContext, but
conceptually this doesn't really make sense because the pick buffer is
associated with a stage framebuffer and there can be multiple stages for
one context.  Secondly - since the change to how redraws are queued - we
weren't marking the pick buffer as invalid when a queuing a redraw, we
were only marking the buffer invalid when signaling/finishing the
queue-redraw process, which is now deferred until just before a paint.
This meant using clutter_stage_get_actor_at_pos after a scenegraph
change could give a wrong result if it just read from an existing (but
technically invalid) pick buffer.

This patch moves the state tracking to ClutterStage, and ensures the
buffer is invalidated in _clutter_stage_queue_actor_redraw.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2283

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2010-09-23 11:14:56 +01:00
..
cally cally: fixing public headers 2010-09-13 12:19:54 +01:00
cogl docs: API reference fixes 2010-09-20 13:15:44 +01:00
egl cex100: Remove C99-ism 2010-09-03 11:14:05 +01:00
fruity Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
glx glx: Mark stage clip initialized even for NULL user clip 2010-09-13 18:18:35 +01:00
json build: Generate ClutterJson in the top directory 2010-09-13 02:26:47 +01:00
osx Try to clean up how we handle actor transformations 2010-09-13 18:18:34 +01:00
win32 Try to clean up how we handle actor transformations 2010-09-13 18:18:34 +01:00
x11 Try to clean up how we handle actor transformations 2010-09-13 18:18:34 +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 picking: Fix tracking of pick buffer validity 2010-09-23 11:14:56 +01:00
clutter-actor.h actor: Add a method for querying key focus 2010-09-10 11:42:11 +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 Further annotation fixes 2010-09-08 16:41:47 +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
clutter-behaviour-ellipse.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-ellipse.h
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
clutter-behaviour-rotate.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-rotate.h
clutter-behaviour-scale.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-scale.h
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
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 effects: Make sure we're using GLSL 1.10 2010-09-21 13:32:31 +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
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
clutter-color.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-color.h
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 profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +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
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 docs: Fix Effect subclassing section 2010-06-10 17:34:48 +01:00
clutter-effect.h docs: Effects fixes for the API reference 2010-06-03 14:34:41 +01:00
clutter-enum-types.c.in
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
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
clutter-frame-source.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-frame-source.h
clutter-group.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-group.h
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
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
clutter-layout-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-layout-meta.h
clutter-list-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-list-model.h
clutter-main.c picking: Fix tracking of pick buffer validity 2010-09-23 11:14:56 +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
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
clutter-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-model.h
clutter-offscreen-effect.c offscreen-effect: Update handling of transforms 2010-09-16 13:27:59 +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
clutter-private.h picking: Fix tracking of pick buffer validity 2010-09-23 11:14:56 +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
clutter-score.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-score.h
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
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
clutter-shader.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-shader.h
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 picking: Fix tracking of pick buffer validity 2010-09-23 11:14:56 +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 Add ClutterTableLayout, a layout showing children in rows and columns 2010-08-10 23:20:06 +01:00
clutter-table-layout.h Fix the ordering of the arguments for clutter_table_layout_set_span 2010-09-17 17:22:17 +01:00
clutter-text.c keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-text.h
clutter-texture.c texture: Add more validation on the material 2010-09-18 08:41:52 +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
clutter-timeout-interval.c
clutter-timeout-interval.h
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 geometry: Adds a clutter_geometry_intersects API 2010-09-13 18:18:34 +01:00
clutter-units.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-units.h
clutter-util.c Add P_() macro for translating property strings 2010-07-15 12:09:01 +01:00
clutter-util.h
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