diff options
author | ajuma <ajuma@chromium.org> | 2015-12-04 13:49:01 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-04 21:49:56 +0000 |
commit | 1401782ba756dd2e7e3158b3a8ddf283ea61b735 (patch) | |
tree | 644825b42b6b2b1eb24ed251e5d4f56b372e9a67 /cc/trees/layer_tree_host_common.cc | |
parent | 7eeb8cbd133d60e5fca6602529d77e3f54f87db5 (diff) | |
download | chromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.zip chromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.tar.gz chromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.tar.bz2 |
cc: Make property trees support elastic overscroll
This makes property trees aware of the elastic overscroll
value, which is used for the overscroll rubberbanding
effect on Mac.
BUG=559550
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1494723002
Cr-Commit-Position: refs/heads/master@{#363302}
Diffstat (limited to 'cc/trees/layer_tree_host_common.cc')
-rw-r--r-- | cc/trees/layer_tree_host_common.cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc index 172b01e..9ab91f0 100644 --- a/cc/trees/layer_tree_host_common.cc +++ b/cc/trees/layer_tree_host_common.cc @@ -2766,7 +2766,9 @@ void CalculateDrawPropertiesAndVerify( BuildPropertyTreesAndComputeVisibleRects( inputs->root_layer, inputs->page_scale_layer, inputs->inner_viewport_scroll_layer, - inputs->outer_viewport_scroll_layer, inputs->page_scale_factor, + inputs->outer_viewport_scroll_layer, + inputs->elastic_overscroll_application_layer, + inputs->elastic_overscroll, inputs->page_scale_factor, inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size), inputs->device_transform, inputs->can_render_to_separate_surface, inputs->property_trees, @@ -2791,14 +2793,18 @@ void CalculateDrawPropertiesAndVerify( TRACE_EVENT0( TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), "LayerTreeHostCommon::ComputeJustVisibleRectsWithPropertyTrees"); - // Since page scale is a SyncedProperty, changes to page scale on the - // active tree immediately affect the pending tree, so instead of - // trying to update property trees whenever page scale changes, we - // update their page scale before using them. + // Since page scale and elastic overscroll are SyncedProperties, changes + // on the active tree immediately affect the pending tree, so instead of + // trying to update property trees whenever these values change, we + // update property trees before using them. UpdatePageScaleFactorInPropertyTrees( inputs->property_trees, inputs->page_scale_layer, inputs->page_scale_factor, inputs->device_scale_factor, inputs->device_transform); + UpdateElasticOverscrollInPropertyTrees( + inputs->property_trees, + inputs->elastic_overscroll_application_layer, + inputs->elastic_overscroll); // Similarly, the device viewport and device transform are shared // by both trees. inputs->property_trees->clip_tree.SetViewportClip( @@ -2866,9 +2872,12 @@ void LayerTreeHostCommon::CalculateDrawProperties( gfx::Transform(), false); PropertyTrees* property_trees = inputs->root_layer->layer_tree_host()->property_trees(); + Layer* overscroll_elasticity_layer = nullptr; + gfx::Vector2dF elastic_overscroll; BuildPropertyTreesAndComputeVisibleRects( inputs->root_layer, inputs->page_scale_layer, inputs->inner_viewport_scroll_layer, inputs->outer_viewport_scroll_layer, + overscroll_elasticity_layer, elastic_overscroll, inputs->page_scale_factor, inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size), inputs->device_transform, can_render_to_separate_surface, property_trees, &update_layer_list); |