Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/resources/tile_manager.h" | 5 #include "cc/resources/tile_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 855 used_layer_counts_[tile->layer_id()]++; | 855 used_layer_counts_[tile->layer_id()]++; |
| 856 return tile; | 856 return tile; |
| 857 } | 857 } |
| 858 | 858 |
| 859 void TileManager::SetTileTaskRunnerForTesting( | 859 void TileManager::SetTileTaskRunnerForTesting( |
| 860 TileTaskRunner* tile_task_runner) { | 860 TileTaskRunner* tile_task_runner) { |
| 861 tile_task_runner_ = tile_task_runner; | 861 tile_task_runner_ = tile_task_runner; |
| 862 tile_task_runner_->SetClient(this); | 862 tile_task_runner_->SetClient(this); |
| 863 } | 863 } |
| 864 | 864 |
| 865 bool TileManager::AreRequiredTilesReadyToDraw( | |
| 866 RasterTilePriorityQueue::Type type) const { | |
| 867 scoped_ptr<RasterTilePriorityQueue> raster_priority_queue( | |
| 868 client_->BuildRasterQueue(global_state_.tree_priority, type)); | |
| 869 // The queue returns tiles that need raster. However, if the tiles were marked | |
| 870 // as rasterize on demand, they might already be ready to draw, which is the | |
| 871 // check we really want. Hence, we need to iterate the tiles and only return | |
|
danakj
2015/01/28 00:48:18
ITYM this to explain why we're checking IsReadyToD
vmpstr
2015/01/28 19:51:17
I'm just trying to convey the fact that we still n
| |
| 872 // false if at least one of them is not ready to draw. | |
| 873 for (; !raster_priority_queue->IsEmpty(); raster_priority_queue->Pop()) { | |
| 874 if (!raster_priority_queue->Top()->IsReadyToDraw()) | |
| 875 return false; | |
| 876 } | |
| 877 return true; | |
| 878 } | |
| 865 bool TileManager::IsReadyToActivate() const { | 879 bool TileManager::IsReadyToActivate() const { |
| 866 TRACE_EVENT0("cc", "TileManager::IsReadyToActivate"); | 880 TRACE_EVENT0("cc", "TileManager::IsReadyToActivate"); |
| 867 const std::vector<PictureLayerImpl*>& layers = client_->GetPictureLayers(); | 881 return AreRequiredTilesReadyToDraw( |
| 868 | 882 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); |
| 869 // TODO(vmpstr): Replace this with building a REQUIRED_TO_ACTIVATE raster | |
| 870 // queue and checking if the tiles it contains are all ready to draw. | |
| 871 for (const auto& layer : layers) { | |
| 872 if (!layer->AllTilesRequiredForActivationAreReadyToDraw()) | |
| 873 return false; | |
| 874 } | |
| 875 | |
| 876 return true; | |
| 877 } | 883 } |
| 878 | 884 |
| 879 bool TileManager::IsReadyToDraw() const { | 885 bool TileManager::IsReadyToDraw() const { |
| 880 const std::vector<PictureLayerImpl*>& layers = client_->GetPictureLayers(); | 886 TRACE_EVENT0("cc", "TileManager::IsReadyToDraw"); |
| 881 | 887 return AreRequiredTilesReadyToDraw( |
| 882 // TODO(vmpstr): Replace this with building a REQUIRED_TO_DRAW raster queue | 888 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); |
| 883 // and checking if the tiles it contains are all ready to draw. | |
| 884 for (const auto& layer : layers) { | |
| 885 if (!layer->AllTilesRequiredForDrawAreReadyToDraw()) | |
| 886 return false; | |
| 887 } | |
| 888 | |
| 889 return true; | |
| 890 } | 889 } |
| 891 | 890 |
| 892 void TileManager::NotifyReadyToActivate() { | 891 void TileManager::NotifyReadyToActivate() { |
| 893 TRACE_EVENT0("cc", "TileManager::NotifyReadyToActivate"); | 892 TRACE_EVENT0("cc", "TileManager::NotifyReadyToActivate"); |
| 894 if (did_notify_ready_to_activate_) | 893 if (did_notify_ready_to_activate_) |
| 895 return; | 894 return; |
| 896 client_->NotifyReadyToActivate(); | 895 client_->NotifyReadyToActivate(); |
| 897 did_notify_ready_to_activate_ = true; | 896 did_notify_ready_to_activate_ = true; |
| 898 } | 897 } |
| 899 | 898 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1040 result -= other; | 1039 result -= other; |
| 1041 return result; | 1040 return result; |
| 1042 } | 1041 } |
| 1043 | 1042 |
| 1044 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { | 1043 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { |
| 1045 return memory_bytes_ > limit.memory_bytes_ || | 1044 return memory_bytes_ > limit.memory_bytes_ || |
| 1046 resource_count_ > limit.resource_count_; | 1045 resource_count_ > limit.resource_count_; |
| 1047 } | 1046 } |
| 1048 | 1047 |
| 1049 } // namespace cc | 1048 } // namespace cc |
| OLD | NEW |