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

Unified Diff: cc/trees/layer_tree_host.cc

Issue 23922006: Plumb PinchVirtualViewport layers into CC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments, patch for landing. Created 7 years, 3 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_impl.h » ('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 611d6aee0a1df4c242c2ece7b9c88a8bc557ea5c..dea57577216875db94ac4e155cb3def7d83c48c7 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -330,6 +330,19 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
sync_tree->FindRootScrollLayer();
+ // TODO(wjmaclean) For now, not all LTH clients will register viewports, so
+ // only set them when available..
+ if (page_scale_layer_) {
+ DCHECK(inner_viewport_scroll_layer_);
+ sync_tree->SetViewportLayersFromIds(
+ page_scale_layer_->id(),
+ inner_viewport_scroll_layer_->id(),
+ outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
+ : Layer::INVALID_ID);
+ } else {
+ sync_tree->ClearViewportLayers();
+ }
+
float page_scale_delta, sent_page_scale_delta;
if (settings_.impl_side_painting) {
// Update the delta from the active tree, which may have
@@ -758,6 +771,9 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
UpdateHudLayer();
Layer* root_scroll = FindFirstScrollableLayer(root_layer);
+ Layer* page_scale_layer = page_scale_layer_;
+ if (!page_scale_layer && root_scroll)
+ page_scale_layer = root_scroll->parent();
if (hud_layer_) {
hud_layer_->PrepareForCalculateDrawProperties(
@@ -771,7 +787,7 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
gfx::Transform(),
device_scale_factor_,
page_scale_factor_,
- root_scroll ? root_scroll->parent() : NULL,
+ page_scale_layer,
GetRendererCapabilities().max_texture_size,
settings_.can_use_lcd_text,
settings_.layer_transforms_should_scale_layer_contents,
@@ -1188,4 +1204,13 @@ void LayerTreeHost::RecreateUIResources() {
}
}
+void LayerTreeHost::RegisterViewportLayers(
+ scoped_refptr<Layer> page_scale_layer,
+ scoped_refptr<Layer> inner_viewport_scroll_layer,
+ scoped_refptr<Layer> outer_viewport_scroll_layer) {
+ page_scale_layer_ = page_scale_layer;
+ inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
+ outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
+}
+
} // namespace cc
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698