Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1914)

Unified Diff: cc/trees/layer_tree_host.cc

Issue 1088773003: Reuse property trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove unrelated change Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host.cc
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 53bfcb8fc22d597432c2fbeefa1c6aedcc1501f8..01ca6994cae41b402ef13268305ab84a75093ad7 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -509,6 +509,8 @@ void LayerTreeHost::SetNeedsCommit() {
void LayerTreeHost::SetNeedsFullTreeSync() {
needs_full_tree_sync_ = true;
+
+ property_trees_.needs_rebuild = true;
SetNeedsCommit();
}
@@ -626,6 +628,7 @@ void LayerTreeHost::SetViewportSize(const gfx::Size& device_viewport_size) {
device_viewport_size_ = device_viewport_size;
+ property_trees_.needs_rebuild = true;
SetNeedsCommit();
}
@@ -649,7 +652,10 @@ void LayerTreeHost::SetTopControlsShownRatio(float ratio) {
void LayerTreeHost::ApplyPageScaleDeltaFromImplSide(float page_scale_delta) {
DCHECK(CommitRequested());
+ if (page_scale_delta == 1.f)
+ return;
page_scale_factor_ *= page_scale_delta;
+ property_trees_.needs_rebuild = true;
}
void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
@@ -663,6 +669,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
page_scale_factor_ = page_scale_factor;
min_page_scale_factor_ = min_page_scale_factor;
max_page_scale_factor_ = max_page_scale_factor;
+ property_trees_.needs_rebuild = true;
SetNeedsCommit();
}
@@ -796,7 +803,6 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
// that we won't be able to detect if a layer is part of |update_list|.
// Change this if this information is required.
int render_surface_layer_list_id = 0;
- PropertyTrees property_trees;
LayerTreeHostCommon::CalcDrawPropsMainInputs inputs(
root_layer, device_viewport_size(), gfx::Transform(),
device_scale_factor_, page_scale_factor_, page_scale_layer,
@@ -806,7 +812,7 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
can_render_to_separate_surface,
settings_.layer_transforms_should_scale_layer_contents,
settings_.verify_property_trees, &update_list,
- render_surface_layer_list_id, &property_trees);
+ render_surface_layer_list_id, &property_trees_);
LayerTreeHostCommon::CalculateDrawProperties(&inputs);
}
@@ -1119,6 +1125,7 @@ void LayerTreeHost::SetDeviceScaleFactor(float device_scale_factor) {
return;
device_scale_factor_ = device_scale_factor;
+ property_trees_.needs_rebuild = true;
SetNeedsCommit();
}
@@ -1139,8 +1146,12 @@ void LayerTreeHost::AnimateLayers(base::TimeTicks monotonic_time) {
if (!settings_.accelerated_animation_enabled)
return;
- if (animation_registrar_->AnimateLayers(monotonic_time))
- animation_registrar_->UpdateAnimationState(true, NULL);
+ AnimationEventsVector events;
+ if (animation_registrar_->AnimateLayers(monotonic_time)) {
+ animation_registrar_->UpdateAnimationState(true, &events);
+ if (!events.empty())
+ property_trees_.needs_rebuild = true;
+ }
}
UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) {

Powered by Google App Engine
This is Rietveld 408576698