OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |