| 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 |