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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 } | 165 } |
166 | 166 |
167 // static | 167 // static |
168 scoped_ptr<TileManager> TileManager::Create( | 168 scoped_ptr<TileManager> TileManager::Create( |
169 TileManagerClient* client, | 169 TileManagerClient* client, |
170 ResourceProvider* resource_provider, | 170 ResourceProvider* resource_provider, |
171 size_t num_raster_threads, | 171 size_t num_raster_threads, |
172 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 172 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
173 bool use_map_image, | 173 bool use_map_image, |
174 size_t max_transfer_buffer_usage_bytes, | 174 size_t max_transfer_buffer_usage_bytes, |
175 size_t max_raster_usage_bytes) { | 175 size_t max_raster_usage_bytes, |
| 176 GLenum map_image_texture_target) { |
176 return make_scoped_ptr( | 177 return make_scoped_ptr( |
177 new TileManager(client, | 178 new TileManager(client, |
178 resource_provider, | 179 resource_provider, |
179 use_map_image ? | 180 use_map_image ? |
180 ImageRasterWorkerPool::Create( | 181 ImageRasterWorkerPool::Create( |
181 resource_provider, num_raster_threads) : | 182 resource_provider, |
| 183 num_raster_threads, |
| 184 map_image_texture_target) : |
182 PixelBufferRasterWorkerPool::Create( | 185 PixelBufferRasterWorkerPool::Create( |
183 resource_provider, | 186 resource_provider, |
184 num_raster_threads, | 187 num_raster_threads, |
185 max_transfer_buffer_usage_bytes), | 188 max_transfer_buffer_usage_bytes), |
186 num_raster_threads, | 189 num_raster_threads, |
187 max_raster_usage_bytes, | 190 max_raster_usage_bytes, |
188 rendering_stats_instrumentation)); | 191 rendering_stats_instrumentation)); |
189 } | 192 } |
190 | 193 |
191 TileManager::TileManager( | 194 TileManager::TileManager( |
192 TileManagerClient* client, | 195 TileManagerClient* client, |
193 ResourceProvider* resource_provider, | 196 ResourceProvider* resource_provider, |
194 scoped_ptr<RasterWorkerPool> raster_worker_pool, | 197 scoped_ptr<RasterWorkerPool> raster_worker_pool, |
195 size_t num_raster_threads, | 198 size_t num_raster_threads, |
196 size_t max_raster_usage_bytes, | 199 size_t max_raster_usage_bytes, |
197 RenderingStatsInstrumentation* rendering_stats_instrumentation) | 200 RenderingStatsInstrumentation* rendering_stats_instrumentation) |
198 : client_(client), | 201 : client_(client), |
199 resource_pool_(ResourcePool::Create(resource_provider)), | 202 resource_pool_(ResourcePool::Create( |
| 203 resource_provider, |
| 204 raster_worker_pool->GetResourceTarget(), |
| 205 raster_worker_pool->GetResourceFormat())), |
200 raster_worker_pool_(raster_worker_pool.Pass()), | 206 raster_worker_pool_(raster_worker_pool.Pass()), |
201 prioritized_tiles_dirty_(false), | 207 prioritized_tiles_dirty_(false), |
202 all_tiles_that_need_to_be_rasterized_have_memory_(true), | 208 all_tiles_that_need_to_be_rasterized_have_memory_(true), |
203 all_tiles_required_for_activation_have_memory_(true), | 209 all_tiles_required_for_activation_have_memory_(true), |
204 memory_required_bytes_(0), | 210 memory_required_bytes_(0), |
205 memory_nice_to_have_bytes_(0), | 211 memory_nice_to_have_bytes_(0), |
206 bytes_releasable_(0), | 212 bytes_releasable_(0), |
207 resources_releasable_(0), | 213 resources_releasable_(0), |
208 max_raster_usage_bytes_(max_raster_usage_bytes), | 214 max_raster_usage_bytes_(max_raster_usage_bytes), |
209 ever_exceeded_memory_budget_(false), | 215 ever_exceeded_memory_budget_(false), |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 base::Bind(&TileManager::OnImageDecodeTaskCompleted, | 843 base::Bind(&TileManager::OnImageDecodeTaskCompleted, |
838 base::Unretained(this), | 844 base::Unretained(this), |
839 tile->layer_id(), | 845 tile->layer_id(), |
840 base::Unretained(pixel_ref))); | 846 base::Unretained(pixel_ref))); |
841 } | 847 } |
842 | 848 |
843 RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) { | 849 RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) { |
844 ManagedTileState& mts = tile->managed_state(); | 850 ManagedTileState& mts = tile->managed_state(); |
845 | 851 |
846 scoped_ptr<ResourcePool::Resource> resource = | 852 scoped_ptr<ResourcePool::Resource> resource = |
847 resource_pool_->AcquireResource( | 853 resource_pool_->AcquireResource(tile->tile_size_.size()); |
848 tile->tile_size_.size(), | |
849 raster_worker_pool_->GetResourceFormat()); | |
850 const Resource* const_resource = resource.get(); | 854 const Resource* const_resource = resource.get(); |
851 | 855 |
852 // Create and queue all image decode tasks that this tile depends on. | 856 // Create and queue all image decode tasks that this tile depends on. |
853 RasterWorkerPool::Task::Set decode_tasks; | 857 RasterWorkerPool::Task::Set decode_tasks; |
854 PixelRefTaskMap& existing_pixel_refs = image_decode_tasks_[tile->layer_id()]; | 858 PixelRefTaskMap& existing_pixel_refs = image_decode_tasks_[tile->layer_id()]; |
855 for (PicturePileImpl::PixelRefIterator iter(tile->content_rect(), | 859 for (PicturePileImpl::PixelRefIterator iter(tile->content_rect(), |
856 tile->contents_scale(), | 860 tile->contents_scale(), |
857 tile->picture_pile()); | 861 tile->picture_pile()); |
858 iter; ++iter) { | 862 iter; ++iter) { |
859 skia::LazyPixelRef* pixel_ref = *iter; | 863 skia::LazyPixelRef* pixel_ref = *iter; |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 can_use_lcd_text)); | 983 can_use_lcd_text)); |
980 DCHECK(tiles_.find(tile->id()) == tiles_.end()); | 984 DCHECK(tiles_.find(tile->id()) == tiles_.end()); |
981 | 985 |
982 tiles_[tile->id()] = tile; | 986 tiles_[tile->id()] = tile; |
983 used_layer_counts_[tile->layer_id()]++; | 987 used_layer_counts_[tile->layer_id()]++; |
984 prioritized_tiles_dirty_ = true; | 988 prioritized_tiles_dirty_ = true; |
985 return tile; | 989 return tile; |
986 } | 990 } |
987 | 991 |
988 } // namespace cc | 992 } // namespace cc |
OLD | NEW |