Partial tree sync of property trees |
||||||
Issue descriptionLayer Tree Synchronizer can either do full tree sync or re-use layers by checking their ID. Property tree sync now only does full tree sync. We need to enable re-use of info inside property tree nodes by looking at unique stable identifier, right now the identifier would be owning layer id. In the future it would use some stable element id. For properties being animated, such as transform/opacity/filters, the most recent value need to be collected from old property trees and pushed to the new property trees. For Render Surface, we need to pass ownership from old effect tree to new effect tree to keep damage and other info that lives on Render Surface. For scrolling, this is already done by the ScrollOffsetMap. (Possible to unify with previously mentioned animation effect) Render Surface ownership passing should happen at pending tree to active tree push on compositor thread. Scrolling offset is shared between pending and active tree, and scrolling offset sync needs to happen between main thread and compositor thread. Animation sync may need to happen both over main/compositor thread boundary as well as between active and pending tree.
,
May 3 2016
,
May 3 2016
The two possible options : 1) We save deltas/new values when we call OnXXXAnimated and during commit/activation, we replay these deltas if required on the new property trees. 2) Walk the property trees node by node and push properties conditionally. I have discussed with Ali earlier today and we felt that the first option was better (and we could implement it by having a stable_identifier->delta/new_value map for each of the animations) because we will need to walk the property trees every commit/activation in the the second case. In the first case the map will only be populated when there is some animation and we will do no extra work when there are no animations. Does that sound good ?
,
May 4 2016
,
May 4 2016
,
May 23 2016
,
Jun 21 2016
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by weiliangc@chromium.org
, Apr 22 2016