| 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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 bool start_ready_animations = true; | 121 bool start_ready_animations = true; |
| 122 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations); | 122 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations); |
| 123 layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame(); | 123 layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame(); |
| 124 } | 124 } |
| 125 | 125 |
| 126 void SetActive(bool active) { | 126 void SetActive(bool active) { |
| 127 if (active != time_source_->Active()) | 127 if (active != time_source_->Active()) |
| 128 time_source_->SetActive(active); | 128 time_source_->SetActive(active); |
| 129 } | 129 } |
| 130 | 130 |
| 131 bool Active() const { |
| 132 return time_source_->Active(); |
| 133 } |
| 134 |
| 131 private: | 135 private: |
| 132 LayerTreeHostImplTimeSourceAdapter( | 136 LayerTreeHostImplTimeSourceAdapter( |
| 133 LayerTreeHostImpl* layer_tree_host_impl, | 137 LayerTreeHostImpl* layer_tree_host_impl, |
| 134 scoped_refptr<DelayBasedTimeSource> time_source) | 138 scoped_refptr<DelayBasedTimeSource> time_source) |
| 135 : layer_tree_host_impl_(layer_tree_host_impl), | 139 : layer_tree_host_impl_(layer_tree_host_impl), |
| 136 time_source_(time_source) { | 140 time_source_(time_source) { |
| 137 time_source_->SetClient(this); | 141 time_source_->SetClient(this); |
| 138 } | 142 } |
| 139 | 143 |
| 140 LayerTreeHostImpl* layer_tree_host_impl_; | 144 LayerTreeHostImpl* layer_tree_host_impl_; |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 pending_tree()->ApplyScrollDeltasSinceBeginFrame(); | 253 pending_tree()->ApplyScrollDeltasSinceBeginFrame(); |
| 250 pending_tree_->set_needs_update_draw_properties(); | 254 pending_tree_->set_needs_update_draw_properties(); |
| 251 pending_tree_->UpdateDrawProperties(); | 255 pending_tree_->UpdateDrawProperties(); |
| 252 // Start working on newly created tiles immediately if needed. | 256 // Start working on newly created tiles immediately if needed. |
| 253 if (!tile_manager_ || !manage_tiles_needed_) | 257 if (!tile_manager_ || !manage_tiles_needed_) |
| 254 NotifyReadyToActivate(); | 258 NotifyReadyToActivate(); |
| 255 else | 259 else |
| 256 ManageTiles(); | 260 ManageTiles(); |
| 257 } else { | 261 } else { |
| 258 active_tree_->set_needs_update_draw_properties(); | 262 active_tree_->set_needs_update_draw_properties(); |
| 263 if (time_source_client_adapter_ && time_source_client_adapter_->Active()) |
| 264 DCHECK(active_tree_->root_layer()); |
| 259 } | 265 } |
| 260 | 266 |
| 261 client_->SendManagedMemoryStats(); | 267 client_->SendManagedMemoryStats(); |
| 262 } | 268 } |
| 263 | 269 |
| 264 bool LayerTreeHostImpl::CanDraw() const { | 270 bool LayerTreeHostImpl::CanDraw() const { |
| 265 // Note: If you are changing this function or any other function that might | 271 // Note: If you are changing this function or any other function that might |
| 266 // affect the result of CanDraw, make sure to call | 272 // affect the result of CanDraw, make sure to call |
| 267 // client_->OnCanDrawStateChanged in the proper places and update the | 273 // client_->OnCanDrawStateChanged in the proper places and update the |
| 268 // NotifyIfCanDrawChanged test. | 274 // NotifyIfCanDrawChanged test. |
| (...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 } | 824 } |
| 819 | 825 |
| 820 void LayerTreeHostImpl::MainThreadHasStoppedFlinging() { | 826 void LayerTreeHostImpl::MainThreadHasStoppedFlinging() { |
| 821 if (input_handler_client_) | 827 if (input_handler_client_) |
| 822 input_handler_client_->MainThreadHasStoppedFlinging(); | 828 input_handler_client_->MainThreadHasStoppedFlinging(); |
| 823 } | 829 } |
| 824 | 830 |
| 825 void LayerTreeHostImpl::UpdateBackgroundAnimateTicking( | 831 void LayerTreeHostImpl::UpdateBackgroundAnimateTicking( |
| 826 bool should_background_tick) { | 832 bool should_background_tick) { |
| 827 DCHECK(proxy_->IsImplThread()); | 833 DCHECK(proxy_->IsImplThread()); |
| 834 if (should_background_tick) |
| 835 DCHECK(active_tree_->root_layer()); |
| 828 | 836 |
| 829 bool enabled = should_background_tick && | 837 bool enabled = should_background_tick && |
| 830 !animation_registrar_->active_animation_controllers().empty(); | 838 !animation_registrar_->active_animation_controllers().empty(); |
| 831 | 839 |
| 832 // Lazily create the time_source adapter so that we can vary the interval for | 840 // Lazily create the time_source adapter so that we can vary the interval for |
| 833 // testing. | 841 // testing. |
| 834 if (!time_source_client_adapter_) { | 842 if (!time_source_client_adapter_) { |
| 835 time_source_client_adapter_ = LayerTreeHostImplTimeSourceAdapter::Create( | 843 time_source_client_adapter_ = LayerTreeHostImplTimeSourceAdapter::Create( |
| 836 this, | 844 this, |
| 837 DelayBasedTimeSource::Create( | 845 DelayBasedTimeSource::Create( |
| (...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1496 const RenderingStats& stats = | 1504 const RenderingStats& stats = |
| 1497 rendering_stats_instrumentation_->GetRenderingStats(); | 1505 rendering_stats_instrumentation_->GetRenderingStats(); |
| 1498 paint_time_counter_->SavePaintTime( | 1506 paint_time_counter_->SavePaintTime( |
| 1499 stats.main_stats.paint_time + stats.main_stats.record_time + | 1507 stats.main_stats.paint_time + stats.main_stats.record_time + |
| 1500 stats.impl_stats.rasterize_time_for_now_bins_on_pending_tree); | 1508 stats.impl_stats.rasterize_time_for_now_bins_on_pending_tree); |
| 1501 } | 1509 } |
| 1502 | 1510 |
| 1503 client_->DidActivatePendingTree(); | 1511 client_->DidActivatePendingTree(); |
| 1504 if (!tree_activation_callback_.is_null()) | 1512 if (!tree_activation_callback_.is_null()) |
| 1505 tree_activation_callback_.Run(); | 1513 tree_activation_callback_.Run(); |
| 1514 |
| 1515 if (time_source_client_adapter_ && time_source_client_adapter_->Active()) |
| 1516 DCHECK(active_tree_->root_layer()); |
| 1506 } | 1517 } |
| 1507 | 1518 |
| 1508 void LayerTreeHostImpl::SetVisible(bool visible) { | 1519 void LayerTreeHostImpl::SetVisible(bool visible) { |
| 1509 DCHECK(proxy_->IsImplThread()); | 1520 DCHECK(proxy_->IsImplThread()); |
| 1510 | 1521 |
| 1511 if (visible_ == visible) | 1522 if (visible_ == visible) |
| 1512 return; | 1523 return; |
| 1513 visible_ = visible; | 1524 visible_ = visible; |
| 1514 DidVisibilityChange(this, visible_); | 1525 DidVisibilityChange(this, visible_); |
| 1515 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); | 1526 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); |
| (...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2568 | 2579 |
| 2569 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( | 2580 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( |
| 2570 UIResourceId uid) const { | 2581 UIResourceId uid) const { |
| 2571 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); | 2582 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); |
| 2572 if (iter != ui_resource_map_.end()) | 2583 if (iter != ui_resource_map_.end()) |
| 2573 return iter->second; | 2584 return iter->second; |
| 2574 return 0; | 2585 return 0; |
| 2575 } | 2586 } |
| 2576 | 2587 |
| 2577 } // namespace cc | 2588 } // namespace cc |
| OLD | NEW |