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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 GLenum texture_format) | 143 GLenum texture_format) |
144 : client_(client), | 144 : client_(client), |
145 resource_pool_(ResourcePool::Create(resource_provider)), | 145 resource_pool_(ResourcePool::Create(resource_provider)), |
146 raster_worker_pool_(raster_worker_pool.Pass()), | 146 raster_worker_pool_(raster_worker_pool.Pass()), |
147 all_tiles_that_need_to_be_rasterized_have_memory_(true), | 147 all_tiles_that_need_to_be_rasterized_have_memory_(true), |
148 all_tiles_required_for_activation_have_memory_(true), | 148 all_tiles_required_for_activation_have_memory_(true), |
149 all_tiles_required_for_activation_have_been_initialized_(true), | 149 all_tiles_required_for_activation_have_been_initialized_(true), |
150 ever_exceeded_memory_budget_(false), | 150 ever_exceeded_memory_budget_(false), |
151 rendering_stats_instrumentation_(rendering_stats_instrumentation), | 151 rendering_stats_instrumentation_(rendering_stats_instrumentation), |
152 did_initialize_visible_tile_(false), | 152 did_initialize_visible_tile_(false), |
153 texture_format_(texture_format) { | 153 texture_format_(texture_format), |
| 154 use_16bit_tiles_(resource_provider->use_16bit_textures()) { |
154 raster_worker_pool_->SetClient(this); | 155 raster_worker_pool_->SetClient(this); |
155 } | 156 } |
156 | 157 |
157 TileManager::~TileManager() { | 158 TileManager::~TileManager() { |
158 // Reset global state and manage. This should cause | 159 // Reset global state and manage. This should cause |
159 // our memory usage to drop to zero. | 160 // our memory usage to drop to zero. |
160 global_state_ = GlobalStateThatImpactsTilePriority(); | 161 global_state_ = GlobalStateThatImpactsTilePriority(); |
161 | 162 |
162 // Clear |prioritized_tiles_| so that tiles kept alive by it can be freed. | 163 // Clear |prioritized_tiles_| so that tiles kept alive by it can be freed. |
163 prioritized_tiles_.Clear(); | 164 prioritized_tiles_.Clear(); |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 mts.resolution, | 761 mts.resolution, |
761 tile->layer_id(), | 762 tile->layer_id(), |
762 static_cast<const void *>(tile), | 763 static_cast<const void *>(tile), |
763 tile->source_frame_number(), | 764 tile->source_frame_number(), |
764 rendering_stats_instrumentation_, | 765 rendering_stats_instrumentation_, |
765 base::Bind(&TileManager::OnRasterTaskCompleted, | 766 base::Bind(&TileManager::OnRasterTaskCompleted, |
766 base::Unretained(this), | 767 base::Unretained(this), |
767 tile->id(), | 768 tile->id(), |
768 base::Passed(&resource), | 769 base::Passed(&resource), |
769 mts.raster_mode), | 770 mts.raster_mode), |
770 &decode_tasks); | 771 &decode_tasks, |
| 772 use_16bit_tiles_); |
771 } | 773 } |
772 | 774 |
773 void TileManager::OnImageDecodeTaskCompleted( | 775 void TileManager::OnImageDecodeTaskCompleted( |
774 int layer_id, | 776 int layer_id, |
775 skia::LazyPixelRef* pixel_ref, | 777 skia::LazyPixelRef* pixel_ref, |
776 bool was_canceled) { | 778 bool was_canceled) { |
777 // If the task was canceled, we need to clean it up | 779 // If the task was canceled, we need to clean it up |
778 // from |image_decode_tasks_|. | 780 // from |image_decode_tasks_|. |
779 if (!was_canceled) | 781 if (!was_canceled) |
780 return; | 782 return; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 tile_version.set_use_resource(); | 831 tile_version.set_use_resource(); |
830 tile_version.resource_ = resource.Pass(); | 832 tile_version.resource_ = resource.Pass(); |
831 } | 833 } |
832 | 834 |
833 FreeUnusedResourcesForTile(tile); | 835 FreeUnusedResourcesForTile(tile); |
834 if (tile->priority(ACTIVE_TREE).distance_to_visible_in_pixels == 0) | 836 if (tile->priority(ACTIVE_TREE).distance_to_visible_in_pixels == 0) |
835 did_initialize_visible_tile_ = true; | 837 did_initialize_visible_tile_ = true; |
836 } | 838 } |
837 | 839 |
838 } // namespace cc | 840 } // namespace cc |
OLD | NEW |