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 // 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 | |
346 float page_scale_delta, sent_page_scale_delta; | 333 float page_scale_delta, sent_page_scale_delta; |
347 if (settings_.impl_side_painting) { | 334 if (settings_.impl_side_painting) { |
348 // Update the delta from the active tree, which may have | 335 // Update the delta from the active tree, which may have |
349 // adjusted its delta prior to the pending tree being created. | 336 // adjusted its delta prior to the pending tree being created. |
350 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. | 337 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. |
351 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); | 338 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); |
352 page_scale_delta = host_impl->active_tree()->page_scale_delta(); | 339 page_scale_delta = host_impl->active_tree()->page_scale_delta(); |
353 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); | 340 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); |
354 } else { | 341 } else { |
355 page_scale_delta = sync_tree->page_scale_delta(); | 342 page_scale_delta = sync_tree->page_scale_delta(); |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 TRACE_EVENT1(benchmark_instrumentation::kCategory, | 751 TRACE_EVENT1(benchmark_instrumentation::kCategory, |
765 benchmark_instrumentation::kLayerTreeHostUpdateLayers, | 752 benchmark_instrumentation::kLayerTreeHostUpdateLayers, |
766 benchmark_instrumentation::kSourceFrameNumber, | 753 benchmark_instrumentation::kSourceFrameNumber, |
767 source_frame_number()); | 754 source_frame_number()); |
768 | 755 |
769 RenderSurfaceLayerList update_list; | 756 RenderSurfaceLayerList update_list; |
770 { | 757 { |
771 UpdateHudLayer(); | 758 UpdateHudLayer(); |
772 | 759 |
773 Layer* root_scroll = FindFirstScrollableLayer(root_layer); | 760 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(); | |
777 | 761 |
778 if (hud_layer_) { | 762 if (hud_layer_) { |
779 hud_layer_->PrepareForCalculateDrawProperties( | 763 hud_layer_->PrepareForCalculateDrawProperties( |
780 device_viewport_size(), device_scale_factor_); | 764 device_viewport_size(), device_scale_factor_); |
781 } | 765 } |
782 | 766 |
783 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps"); | 767 TRACE_EVENT0("cc", "LayerTreeHost::UpdateLayers::CalcDrawProps"); |
784 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs( | 768 LayerTreeHostCommon::CalcDrawPropsMainInputs inputs( |
785 root_layer, | 769 root_layer, |
786 device_viewport_size(), | 770 device_viewport_size(), |
787 gfx::Transform(), | 771 gfx::Transform(), |
788 device_scale_factor_, | 772 device_scale_factor_, |
789 page_scale_factor_, | 773 page_scale_factor_, |
790 page_scale_layer, | 774 root_scroll ? root_scroll->parent() : NULL, |
791 GetRendererCapabilities().max_texture_size, | 775 GetRendererCapabilities().max_texture_size, |
792 settings_.can_use_lcd_text, | 776 settings_.can_use_lcd_text, |
793 settings_.layer_transforms_should_scale_layer_contents, | 777 settings_.layer_transforms_should_scale_layer_contents, |
794 &update_list); | 778 &update_list); |
795 LayerTreeHostCommon::CalculateDrawProperties(&inputs); | 779 LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
796 | 780 |
797 if (total_frames_used_for_lcd_text_metrics_ <= | 781 if (total_frames_used_for_lcd_text_metrics_ <= |
798 kTotalFramesToUseForLCDTextMetrics) { | 782 kTotalFramesToUseForLCDTextMetrics) { |
799 LayerTreeHostCommon::CallFunctionForSubtree( | 783 LayerTreeHostCommon::CallFunctionForSubtree( |
800 root_layer, | 784 root_layer, |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 UIResourceRequest request; | 1181 UIResourceRequest request; |
1198 request.type = UIResourceRequest::UIResourceCreate; | 1182 request.type = UIResourceRequest::UIResourceCreate; |
1199 request.id = uid; | 1183 request.id = uid; |
1200 bool resource_lost = true; | 1184 bool resource_lost = true; |
1201 request.bitmap = iter->second->GetBitmap(uid, resource_lost); | 1185 request.bitmap = iter->second->GetBitmap(uid, resource_lost); |
1202 DCHECK(request.bitmap.get()); | 1186 DCHECK(request.bitmap.get()); |
1203 ui_resource_request_queue_.push_back(request); | 1187 ui_resource_request_queue_.push_back(request); |
1204 } | 1188 } |
1205 } | 1189 } |
1206 | 1190 |
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 | |
1216 } // namespace cc | 1191 } // namespace cc |
OLD | NEW |