d7e86e2696
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>