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

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: 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 if (settings_.use_pinch_virtual_viewport && page_scale_layer_) {
334 DCHECK(inner_viewport_scroll_layer_);
335 DCHECK(outer_viewport_scroll_layer_);
336 sync_tree->SetPinchViewportLayerIds(page_scale_layer_->id(),
337 inner_viewport_scroll_layer_->id(),
338 outer_viewport_scroll_layer_->id());
339 }
340
333 float page_scale_delta, sent_page_scale_delta; 341 float page_scale_delta, sent_page_scale_delta;
334 if (settings_.impl_side_painting) { 342 if (settings_.impl_side_painting) {
335 // Update the delta from the active tree, which may have 343 // Update the delta from the active tree, which may have
336 // adjusted its delta prior to the pending tree being created. 344 // adjusted its delta prior to the pending tree being created.
337 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. 345 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta.
338 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); 346 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta());
339 page_scale_delta = host_impl->active_tree()->page_scale_delta(); 347 page_scale_delta = host_impl->active_tree()->page_scale_delta();
340 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); 348 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta();
341 } else { 349 } else {
342 page_scale_delta = sync_tree->page_scale_delta(); 350 page_scale_delta = sync_tree->page_scale_delta();
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 TRACE_EVENT1(benchmark_instrumentation::kCategory, 762 TRACE_EVENT1(benchmark_instrumentation::kCategory,
755 benchmark_instrumentation::kLayerTreeHostUpdateLayers, 763 benchmark_instrumentation::kLayerTreeHostUpdateLayers,
756 benchmark_instrumentation::kSourceFrameNumber, 764 benchmark_instrumentation::kSourceFrameNumber,
757 source_frame_number()); 765 source_frame_number());
758 766
759 RenderSurfaceLayerList update_list; 767 RenderSurfaceLayerList update_list;
760 { 768 {
761 UpdateHudLayer(); 769 UpdateHudLayer();
762 770
763 Layer* root_scroll = FindFirstScrollableLayer(root_layer); 771 Layer* root_scroll = FindFirstScrollableLayer(root_layer);
772 Layer* page_scale_layer = page_scale_layer_;
773 if (!page_scale_layer && root_scroll)
774 page_scale_layer = root_scroll->parent();
764 775
765 if (hud_layer_) { 776 if (hud_layer_) {
766 hud_layer_->PrepareForCalculateDrawProperties( 777 hud_layer_->PrepareForCalculateDrawProperties(
767 device_viewport_size(), device_scale_factor_); 778 device_viewport_size(), device_scale_factor_);
768 } 779 }
769 780
770 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps"); 781 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps");
771 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs( 782 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs(
772 root_layer, 783 root_layer,
773 device_viewport_size(), 784 device_viewport_size(),
774 gfx::Transform(), 785 gfx::Transform(),
775 device_scale_factor_, 786 device_scale_factor_,
776 page_scale_factor_, 787 page_scale_factor_,
777 root_scroll ? root_scroll->parent() : NULL, 788 page_scale_layer,
778 GetRendererCapabilities().max_texture_size, 789 GetRendererCapabilities().max_texture_size,
779 settings_.can_use_lcd_text, 790 settings_.can_use_lcd_text,
780 settings_.layer_transforms_should_scale_layer_contents, 791 settings_.layer_transforms_should_scale_layer_contents,
781 &update_list); 792 &update_list);
782 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 793 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
783 794
784 if (total_frames_used_for_lcd_text_metrics_ <= 795 if (total_frames_used_for_lcd_text_metrics_ <=
785 kTotalFramesToUseForLCDTextMetrics) { 796 kTotalFramesToUseForLCDTextMetrics) {
786 LayerTreeHostCommon::CallFunctionForSubtree( 797 LayerTreeHostCommon::CallFunctionForSubtree(
787 root_layer, 798 root_layer,
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
1183 UIResourceId uid = iter->first; 1194 UIResourceId uid = iter->first;
1184 UIResourceRequest request; 1195 UIResourceRequest request;
1185 request.type = UIResourceRequest::UIResourceCreate; 1196 request.type = UIResourceRequest::UIResourceCreate;
1186 request.id = uid; 1197 request.id = uid;
1187 request.bitmap = iter->second->GetBitmap(uid, resource_lost); 1198 request.bitmap = iter->second->GetBitmap(uid, resource_lost);
1188 DCHECK(request.bitmap.get()); 1199 DCHECK(request.bitmap.get());
1189 ui_resource_request_queue_.push_back(request); 1200 ui_resource_request_queue_.push_back(request);
1190 } 1201 }
1191 } 1202 }
1192 1203
1204 void LayerTreeHost::RegisterPinchViewportLayers(
1205 scoped_refptr<Layer> inner_viewport_clip_layer,
1206 scoped_refptr<Layer> page_scale_layer,
1207 scoped_refptr<Layer> inner_viewport_scroll_layer,
1208 scoped_refptr<Layer> outer_viewport_scroll_layer) {
1209 inner_viewport_clip_layer_ = inner_viewport_clip_layer;
1210 page_scale_layer_ = page_scale_layer;
1211 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
1212 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
1213 }
1214
1193 } // namespace cc 1215 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698