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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 GLenum texture_format) | 129 GLenum texture_format) |
130 : client_(client), | 130 : client_(client), |
131 resource_pool_(ResourcePool::Create(resource_provider)), | 131 resource_pool_(ResourcePool::Create(resource_provider)), |
132 raster_worker_pool_(raster_worker_pool.Pass()), | 132 raster_worker_pool_(raster_worker_pool.Pass()), |
133 all_tiles_that_need_to_be_rasterized_have_memory_(true), | 133 all_tiles_that_need_to_be_rasterized_have_memory_(true), |
134 all_tiles_required_for_activation_have_memory_(true), | 134 all_tiles_required_for_activation_have_memory_(true), |
135 all_tiles_required_for_activation_have_been_initialized_(true), | 135 all_tiles_required_for_activation_have_been_initialized_(true), |
136 ever_exceeded_memory_budget_(false), | 136 ever_exceeded_memory_budget_(false), |
137 rendering_stats_instrumentation_(rendering_stats_instrumentation), | 137 rendering_stats_instrumentation_(rendering_stats_instrumentation), |
138 did_initialize_visible_tile_(false), | 138 did_initialize_visible_tile_(false), |
139 texture_format_(texture_format) { | 139 texture_format_(texture_format), |
| 140 use_16bit_tiles_(resource_provider->use_16bit_textures()) { |
140 raster_worker_pool_->SetClient(this); | 141 raster_worker_pool_->SetClient(this); |
141 } | 142 } |
142 | 143 |
143 TileManager::~TileManager() { | 144 TileManager::~TileManager() { |
144 // Reset global state and manage. This should cause | 145 // Reset global state and manage. This should cause |
145 // our memory usage to drop to zero. | 146 // our memory usage to drop to zero. |
146 global_state_ = GlobalStateThatImpactsTilePriority(); | 147 global_state_ = GlobalStateThatImpactsTilePriority(); |
147 | 148 |
148 // Clear |sorted_tiles_| so that tiles kept alive by it can be freed. | 149 // Clear |sorted_tiles_| so that tiles kept alive by it can be freed. |
149 sorted_tiles_.clear(); | 150 sorted_tiles_.clear(); |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 mts.resolution, | 758 mts.resolution, |
758 tile->layer_id(), | 759 tile->layer_id(), |
759 static_cast<const void *>(tile), | 760 static_cast<const void *>(tile), |
760 tile->source_frame_number(), | 761 tile->source_frame_number(), |
761 rendering_stats_instrumentation_, | 762 rendering_stats_instrumentation_, |
762 base::Bind(&TileManager::OnRasterTaskCompleted, | 763 base::Bind(&TileManager::OnRasterTaskCompleted, |
763 base::Unretained(this), | 764 base::Unretained(this), |
764 tile->id(), | 765 tile->id(), |
765 base::Passed(&resource), | 766 base::Passed(&resource), |
766 mts.raster_mode), | 767 mts.raster_mode), |
767 &decode_tasks); | 768 &decode_tasks, |
| 769 use_16bit_tiles_); |
768 } | 770 } |
769 | 771 |
770 void TileManager::OnImageDecodeTaskCompleted( | 772 void TileManager::OnImageDecodeTaskCompleted( |
771 int layer_id, | 773 int layer_id, |
772 skia::LazyPixelRef* pixel_ref, | 774 skia::LazyPixelRef* pixel_ref, |
773 bool was_canceled) { | 775 bool was_canceled) { |
774 // If the task was canceled, we need to clean it up | 776 // If the task was canceled, we need to clean it up |
775 // from |image_decode_tasks_|. | 777 // from |image_decode_tasks_|. |
776 if (!was_canceled) | 778 if (!was_canceled) |
777 return; | 779 return; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
826 tile_version.set_use_resource(); | 828 tile_version.set_use_resource(); |
827 tile_version.resource_ = resource.Pass(); | 829 tile_version.resource_ = resource.Pass(); |
828 } | 830 } |
829 | 831 |
830 FreeUnusedResourcesForTile(tile); | 832 FreeUnusedResourcesForTile(tile); |
831 if (tile->priority(ACTIVE_TREE).distance_to_visible_in_pixels == 0) | 833 if (tile->priority(ACTIVE_TREE).distance_to_visible_in_pixels == 0) |
832 did_initialize_visible_tile_ = true; | 834 did_initialize_visible_tile_ = true; |
833 } | 835 } |
834 | 836 |
835 } // namespace cc | 837 } // namespace cc |
OLD | NEW |