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

Unified Diff: cc/trees/layer_tree_host.cc

Issue 2886243004: Refactor RegisterViewportLayers to use a struct instead of 6 values (Closed)
Patch Set: CC_EXPORT ViewportLayers to make the Windows compile+link happy. Created 3 years, 7 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
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host.cc
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index e826e2d93900d0e34f10261a4e00b6ac885ad6fc..8db96130c74303927c5712016310f894d3d87349 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -172,7 +172,7 @@ LayerTreeHost::~LayerTreeHost() {
mutator_host_->SetMutatorHostClient(nullptr);
// We must clear any pointers into the layer tree prior to destroying it.
- RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
+ RegisterViewportLayers(ViewportLayers());
if (root_layer_) {
root_layer_->SetLayerTreeHost(nullptr);
@@ -679,7 +679,7 @@ bool LayerTreeHost::DoUpdateLayers(Layer* root_layer) {
Layer* root_scroll =
PropertyTreeBuilder::FindFirstScrollableLayer(root_layer);
- Layer* page_scale_layer = page_scale_layer_.get();
+ Layer* page_scale_layer = viewport_layers_.page_scale.get();
if (!page_scale_layer && root_scroll)
page_scale_layer = root_scroll->parent();
@@ -762,10 +762,10 @@ void LayerTreeHost::ApplyViewportDeltas(ScrollAndScaleSet* info) {
// Preemptively apply the scroll offset and scale delta here before sending
// it to the client. If the client comes back and sets it to the same
// value, then the layer can early out without needing a full commit.
- if (inner_viewport_scroll_layer_) {
- inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide(
+ if (viewport_layers_.inner_viewport_scroll) {
+ viewport_layers_.inner_viewport_scroll->SetScrollOffsetFromImplSide(
gfx::ScrollOffsetWithDelta(
- inner_viewport_scroll_layer_->scroll_offset(),
+ viewport_layers_.inner_viewport_scroll->scroll_offset(),
inner_viewport_scroll_delta));
}
@@ -902,21 +902,19 @@ void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) {
SetNeedsFullTreeSync();
}
-void LayerTreeHost::RegisterViewportLayers(
- scoped_refptr<Layer> overscroll_elasticity_layer,
- scoped_refptr<Layer> page_scale_layer,
- scoped_refptr<Layer> inner_viewport_container_layer,
- scoped_refptr<Layer> outer_viewport_container_layer,
- scoped_refptr<Layer> inner_viewport_scroll_layer,
- scoped_refptr<Layer> outer_viewport_scroll_layer) {
- DCHECK(!inner_viewport_scroll_layer ||
- inner_viewport_scroll_layer != outer_viewport_scroll_layer);
- overscroll_elasticity_layer_ = overscroll_elasticity_layer;
- page_scale_layer_ = page_scale_layer;
- inner_viewport_container_layer_ = inner_viewport_container_layer;
- outer_viewport_container_layer_ = outer_viewport_container_layer;
- inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
- outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
+LayerTreeHost::ViewportLayers::ViewportLayers() {}
+
+LayerTreeHost::ViewportLayers::~ViewportLayers() {}
+
+void LayerTreeHost::RegisterViewportLayers(const ViewportLayers& layers) {
+ DCHECK(!layers.inner_viewport_scroll ||
+ layers.inner_viewport_scroll != layers.outer_viewport_scroll);
+ viewport_layers_.overscroll_elasticity = layers.overscroll_elasticity;
+ viewport_layers_.page_scale = layers.page_scale;
+ viewport_layers_.inner_viewport_container = layers.inner_viewport_container;
+ viewport_layers_.outer_viewport_container = layers.outer_viewport_container;
+ viewport_layers_.inner_viewport_scroll = layers.inner_viewport_scroll;
+ viewport_layers_.outer_viewport_scroll = layers.outer_viewport_scroll;
}
void LayerTreeHost::RegisterSelection(const LayerSelection& selection) {
@@ -1172,20 +1170,23 @@ void LayerTreeHost::PushLayerTreePropertiesTo(LayerTreeImpl* tree_impl) {
EventListenerClass::kTouchEndOrCancel,
event_listener_properties(EventListenerClass::kTouchEndOrCancel));
- if (page_scale_layer_ && inner_viewport_scroll_layer_) {
+ if (viewport_layers_.page_scale && viewport_layers_.inner_viewport_scroll) {
LayerTreeImpl::ViewportLayerIds ids;
- if (overscroll_elasticity_layer_)
- ids.overscroll_elasticity = overscroll_elasticity_layer_->id();
- ids.page_scale = page_scale_layer_->id();
- if (inner_viewport_container_layer_)
- ids.inner_viewport_container = inner_viewport_container_layer_->id();
- if (outer_viewport_container_layer_)
- ids.outer_viewport_container = outer_viewport_container_layer_->id();
- ids.inner_viewport_scroll = inner_viewport_scroll_layer_->id();
- if (outer_viewport_scroll_layer_)
- ids.outer_viewport_scroll = outer_viewport_scroll_layer_->id();
+ if (viewport_layers_.overscroll_elasticity)
+ ids.overscroll_elasticity = viewport_layers_.overscroll_elasticity->id();
+ ids.page_scale = viewport_layers_.page_scale->id();
+ if (viewport_layers_.inner_viewport_container)
+ ids.inner_viewport_container =
+ viewport_layers_.inner_viewport_container->id();
+ if (viewport_layers_.outer_viewport_container)
+ ids.outer_viewport_container =
+ viewport_layers_.outer_viewport_container->id();
+ ids.inner_viewport_scroll = viewport_layers_.inner_viewport_scroll->id();
+ if (viewport_layers_.outer_viewport_scroll)
+ ids.outer_viewport_scroll = viewport_layers_.outer_viewport_scroll->id();
tree_impl->SetViewportLayersFromIds(ids);
- DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers());
+ DCHECK(viewport_layers_.inner_viewport_scroll
+ ->IsContainerForFixedPositionLayers());
} else {
tree_impl->ClearViewportLayers();
}
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698