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_impl.h" | 5 #include "cc/trees/layer_tree_impl.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "cc/animation/keyframed_animation_curve.h" | 8 #include "cc/animation/keyframed_animation_curve.h" |
9 #include "cc/animation/scrollbar_animation_controller.h" | 9 #include "cc/animation/scrollbar_animation_controller.h" |
10 #include "cc/debug/traced_value.h" | 10 #include "cc/debug/traced_value.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 root_scroll_layer_->SetScrollOffsetDelegate(NULL); | 97 root_scroll_layer_->SetScrollOffsetDelegate(NULL); |
98 root_scroll_layer_ = NULL; | 98 root_scroll_layer_ = NULL; |
99 currently_scrolling_layer_ = NULL; | 99 currently_scrolling_layer_ = NULL; |
100 | 100 |
101 render_surface_layer_list_.clear(); | 101 render_surface_layer_list_.clear(); |
102 set_needs_update_draw_properties(); | 102 set_needs_update_draw_properties(); |
103 return root_layer_.Pass(); | 103 return root_layer_.Pass(); |
104 } | 104 } |
105 | 105 |
106 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { | 106 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { |
| 107 // The request queue should have been processed and does not require a push. |
| 108 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); |
| 109 |
107 target_tree->SetLatencyInfo(latency_info_); | 110 target_tree->SetLatencyInfo(latency_info_); |
108 latency_info_.Clear(); | 111 latency_info_.Clear(); |
109 target_tree->SetPageScaleFactorAndLimits( | 112 target_tree->SetPageScaleFactorAndLimits( |
110 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); | 113 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); |
111 target_tree->SetPageScaleDelta( | 114 target_tree->SetPageScaleDelta( |
112 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); | 115 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); |
113 target_tree->set_sent_page_scale_delta(1); | 116 target_tree->set_sent_page_scale_delta(1); |
114 | 117 |
115 // This should match the property synchronization in | 118 // This should match the property synchronization in |
116 // LayerTreeHost::finishCommitOnImplThread(). | 119 // LayerTreeHost::finishCommitOnImplThread(). |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 IsActiveTree() && | 278 IsActiveTree() && |
276 RootScrollLayer()) { | 279 RootScrollLayer()) { |
277 UpdateSolidColorScrollbars(); | 280 UpdateSolidColorScrollbars(); |
278 } | 281 } |
279 | 282 |
280 needs_update_draw_properties_ = false; | 283 needs_update_draw_properties_ = false; |
281 render_surface_layer_list_.clear(); | 284 render_surface_layer_list_.clear(); |
282 | 285 |
283 // For max_texture_size. | 286 // For max_texture_size. |
284 if (!layer_tree_host_impl_->renderer()) | 287 if (!layer_tree_host_impl_->renderer()) |
285 return; | 288 return; |
286 | 289 |
287 if (!root_layer()) | 290 if (!root_layer()) |
288 return; | 291 return; |
289 | 292 |
290 { | 293 { |
291 TRACE_EVENT2("cc", | 294 TRACE_EVENT2("cc", |
292 "LayerTreeImpl::UpdateDrawProperties", | 295 "LayerTreeImpl::UpdateDrawProperties", |
293 "IsActive", | 296 "IsActive", |
294 IsActiveTree(), | 297 IsActiveTree(), |
295 "SourceFrameNumber", | 298 "SourceFrameNumber", |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 continue; | 525 continue; |
523 render_surface_layer_list->Append(TracedValue::CreateIDRef(*it).release()); | 526 render_surface_layer_list->Append(TracedValue::CreateIDRef(*it).release()); |
524 } | 527 } |
525 | 528 |
526 state->Set("render_surface_layer_list", | 529 state->Set("render_surface_layer_list", |
527 render_surface_layer_list.release()); | 530 render_surface_layer_list.release()); |
528 return state.PassAs<base::Value>(); | 531 return state.PassAs<base::Value>(); |
529 } | 532 } |
530 | 533 |
531 void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( | 534 void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( |
532 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) { | 535 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) { |
533 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; | 536 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; |
534 if (root_scroll_layer_) { | 537 if (root_scroll_layer_) { |
535 root_scroll_layer_->SetScrollOffsetDelegate( | 538 root_scroll_layer_->SetScrollOffsetDelegate( |
536 root_layer_scroll_offset_delegate_); | 539 root_layer_scroll_offset_delegate_); |
537 } | 540 } |
538 } | 541 } |
539 | 542 |
540 void LayerTreeImpl::UpdateRootScrollLayerSizeDelta() { | 543 void LayerTreeImpl::UpdateRootScrollLayerSizeDelta() { |
541 LayerImpl* root_scroll = RootScrollLayer(); | 544 LayerImpl* root_scroll = RootScrollLayer(); |
542 LayerImpl* root_container = RootContainerLayer(); | 545 LayerImpl* root_container = RootContainerLayer(); |
(...skipping 22 matching lines...) Expand all Loading... |
565 } | 568 } |
566 | 569 |
567 void LayerTreeImpl::ClearLatencyInfo() { | 570 void LayerTreeImpl::ClearLatencyInfo() { |
568 latency_info_.Clear(); | 571 latency_info_.Clear(); |
569 } | 572 } |
570 | 573 |
571 void LayerTreeImpl::WillModifyTilePriorities() { | 574 void LayerTreeImpl::WillModifyTilePriorities() { |
572 layer_tree_host_impl_->SetNeedsManageTiles(); | 575 layer_tree_host_impl_->SetNeedsManageTiles(); |
573 } | 576 } |
574 | 577 |
| 578 void LayerTreeImpl::set_ui_resource_request_queue( |
| 579 const UIResourceRequestQueue& queue) { |
| 580 ui_resource_request_queue_ = queue; |
| 581 } |
| 582 |
| 583 ResourceProvider::ResourceId LayerTreeImpl::ResourceIdForUIResource( |
| 584 UIResourceId uid) const { |
| 585 return layer_tree_host_impl_->ResourceIdForUIResource(uid); |
| 586 } |
| 587 |
| 588 void LayerTreeImpl::ProcessUIResourceRequestQueue() { |
| 589 while (ui_resource_request_queue_.size() > 0) { |
| 590 UIResourceRequest req = ui_resource_request_queue_.front(); |
| 591 ui_resource_request_queue_.pop_front(); |
| 592 |
| 593 switch (req.type) { |
| 594 case UIResourceRequest::UIResourceCreate: |
| 595 layer_tree_host_impl_->CreateUIResource(req.id, req.bitmap); |
| 596 break; |
| 597 case UIResourceRequest::UIResourceDelete: |
| 598 layer_tree_host_impl_->DeleteUIResource(req.id); |
| 599 break; |
| 600 default: |
| 601 NOTREACHED(); |
| 602 break; |
| 603 } |
| 604 } |
| 605 } |
| 606 |
575 void LayerTreeImpl::AddLayerWithCopyOutputRequest(LayerImpl* layer) { | 607 void LayerTreeImpl::AddLayerWithCopyOutputRequest(LayerImpl* layer) { |
576 // Only the active tree needs to know about layers with copy requests, as | 608 // Only the active tree needs to know about layers with copy requests, as |
577 // they are aborted if not serviced during draw. | 609 // they are aborted if not serviced during draw. |
578 DCHECK(IsActiveTree()); | 610 DCHECK(IsActiveTree()); |
579 | 611 |
580 DCHECK(std::find(layers_with_copy_output_request_.begin(), | 612 DCHECK(std::find(layers_with_copy_output_request_.begin(), |
581 layers_with_copy_output_request_.end(), | 613 layers_with_copy_output_request_.end(), |
582 layer) == layers_with_copy_output_request_.end()); | 614 layer) == layers_with_copy_output_request_.end()); |
583 layers_with_copy_output_request_.push_back(layer); | 615 layers_with_copy_output_request_.push_back(layer); |
584 } | 616 } |
(...skipping 14 matching lines...) Expand all Loading... |
599 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest() | 631 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest() |
600 const { | 632 const { |
601 // Only the active tree needs to know about layers with copy requests, as | 633 // Only the active tree needs to know about layers with copy requests, as |
602 // they are aborted if not serviced during draw. | 634 // they are aborted if not serviced during draw. |
603 DCHECK(IsActiveTree()); | 635 DCHECK(IsActiveTree()); |
604 | 636 |
605 return layers_with_copy_output_request_; | 637 return layers_with_copy_output_request_; |
606 } | 638 } |
607 | 639 |
608 } // namespace cc | 640 } // namespace cc |
OLD | NEW |