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

Side by Side 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, remove some pinchVirtualViewportEnabled checks. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); 323 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl));
324 } else { 324 } else {
325 sync_tree->set_hud_layer(NULL); 325 sync_tree->set_hud_layer(NULL);
326 } 326 }
327 327
328 sync_tree->set_background_color(background_color_); 328 sync_tree->set_background_color(background_color_);
329 sync_tree->set_has_transparent_background(has_transparent_background_); 329 sync_tree->set_has_transparent_background(has_transparent_background_);
330 330
331 sync_tree->FindRootScrollLayer(); 331 sync_tree->FindRootScrollLayer();
332 332
333 // TODO(wjmaclean) For now, not all LTH clients will register viewports, so
334 // only set them when available..
335 if (page_scale_layer_) {
336 DCHECK(inner_viewport_scroll_layer_);
337 sync_tree->SetViewportLayersFromIds(
338 page_scale_layer_->id(),
339 inner_viewport_scroll_layer_->id(),
340 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
341 : Layer::INVALID_ID);
342 } else {
343 sync_tree->ClearViewportLayers();
344 }
345
333 float page_scale_delta, sent_page_scale_delta; 346 float page_scale_delta, sent_page_scale_delta;
334 if (settings_.impl_side_painting) { 347 if (settings_.impl_side_painting) {
335 // Update the delta from the active tree, which may have 348 // Update the delta from the active tree, which may have
336 // adjusted its delta prior to the pending tree being created. 349 // adjusted its delta prior to the pending tree being created.
337 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. 350 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta.
338 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); 351 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta());
339 page_scale_delta = host_impl->active_tree()->page_scale_delta(); 352 page_scale_delta = host_impl->active_tree()->page_scale_delta();
340 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); 353 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta();
341 } else { 354 } else {
342 page_scale_delta = sync_tree->page_scale_delta(); 355 page_scale_delta = sync_tree->page_scale_delta();
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 TRACE_EVENT1(benchmark_instrumentation::kCategory, 764 TRACE_EVENT1(benchmark_instrumentation::kCategory,
752 benchmark_instrumentation::kLayerTreeHostUpdateLayers, 765 benchmark_instrumentation::kLayerTreeHostUpdateLayers,
753 benchmark_instrumentation::kSourceFrameNumber, 766 benchmark_instrumentation::kSourceFrameNumber,
754 source_frame_number()); 767 source_frame_number());
755 768
756 RenderSurfaceLayerList update_list; 769 RenderSurfaceLayerList update_list;
757 { 770 {
758 UpdateHudLayer(); 771 UpdateHudLayer();
759 772
760 Layer* root_scroll = FindFirstScrollableLayer(root_layer); 773 Layer* root_scroll = FindFirstScrollableLayer(root_layer);
774 Layer* page_scale_layer = page_scale_layer_;
775 if (!page_scale_layer && root_scroll)
776 page_scale_layer = root_scroll->parent();
761 777
762 if (hud_layer_) { 778 if (hud_layer_) {
763 hud_layer_->PrepareForCalculateDrawProperties( 779 hud_layer_->PrepareForCalculateDrawProperties(
764 device_viewport_size(), device_scale_factor_); 780 device_viewport_size(), device_scale_factor_);
765 } 781 }
766 782
767 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps"); 783 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps");
768 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs( 784 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs(
769 root_layer, 785 root_layer,
770 device_viewport_size(), 786 device_viewport_size(),
771 gfx::Transform(), 787 gfx::Transform(),
772 device_scale_factor_, 788 device_scale_factor_,
773 page_scale_factor_, 789 page_scale_factor_,
774 root_scroll ? root_scroll->parent() : NULL, 790 page_scale_layer,
775 GetRendererCapabilities().max_texture_size, 791 GetRendererCapabilities().max_texture_size,
776 settings_.can_use_lcd_text, 792 settings_.can_use_lcd_text,
777 settings_.layer_transforms_should_scale_layer_contents, 793 settings_.layer_transforms_should_scale_layer_contents,
778 &update_list); 794 &update_list);
779 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 795 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
780 796
781 if (total_frames_used_for_lcd_text_metrics_ <= 797 if (total_frames_used_for_lcd_text_metrics_ <=
782 kTotalFramesToUseForLCDTextMetrics) { 798 kTotalFramesToUseForLCDTextMetrics) {
783 LayerTreeHostCommon::CallFunctionForSubtree( 799 LayerTreeHostCommon::CallFunctionForSubtree(
784 root_layer, 800 root_layer,
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 UIResourceRequest request; 1197 UIResourceRequest request;
1182 request.type = UIResourceRequest::UIResourceCreate; 1198 request.type = UIResourceRequest::UIResourceCreate;
1183 request.id = uid; 1199 request.id = uid;
1184 bool resource_lost = true; 1200 bool resource_lost = true;
1185 request.bitmap = iter->second->GetBitmap(uid, resource_lost); 1201 request.bitmap = iter->second->GetBitmap(uid, resource_lost);
1186 DCHECK(request.bitmap.get()); 1202 DCHECK(request.bitmap.get());
1187 ui_resource_request_queue_.push_back(request); 1203 ui_resource_request_queue_.push_back(request);
1188 } 1204 }
1189 } 1205 }
1190 1206
1207 void LayerTreeHost::RegisterViewportLayers(
1208 scoped_refptr<Layer> page_scale_layer,
1209 scoped_refptr<Layer> inner_viewport_scroll_layer,
1210 scoped_refptr<Layer> outer_viewport_scroll_layer) {
1211 page_scale_layer_ = page_scale_layer;
1212 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
1213 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
1214 }
1215
1191 } // namespace cc 1216 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698