| 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 return scoped_ptr<base::Value>(base::Value::CreateStringValue( | 91 return scoped_ptr<base::Value>(base::Value::CreateStringValue( |
| 92 "<unknown TileManagerBinPriority value>")); | 92 "<unknown TileManagerBinPriority value>")); |
| 93 } | 93 } |
| 94 } | 94 } |
| 95 | 95 |
| 96 // static | 96 // static |
| 97 scoped_ptr<TileManager> TileManager::Create( | 97 scoped_ptr<TileManager> TileManager::Create( |
| 98 TileManagerClient* client, | 98 TileManagerClient* client, |
| 99 ResourceProvider* resource_provider, | 99 ResourceProvider* resource_provider, |
| 100 size_t num_raster_threads, | 100 size_t num_raster_threads, |
| 101 bool use_color_estimator, | |
| 102 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 101 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
| 103 bool use_map_image) { | 102 bool use_map_image) { |
| 104 return make_scoped_ptr( | 103 return make_scoped_ptr( |
| 105 new TileManager(client, | 104 new TileManager(client, |
| 106 resource_provider, | 105 resource_provider, |
| 107 use_map_image ? | 106 use_map_image ? |
| 108 ImageRasterWorkerPool::Create( | 107 ImageRasterWorkerPool::Create( |
| 109 resource_provider, num_raster_threads) : | 108 resource_provider, num_raster_threads) : |
| 110 PixelBufferRasterWorkerPool::Create( | 109 PixelBufferRasterWorkerPool::Create( |
| 111 resource_provider, num_raster_threads), | 110 resource_provider, num_raster_threads), |
| 112 num_raster_threads, | 111 num_raster_threads, |
| 113 use_color_estimator, | |
| 114 rendering_stats_instrumentation, | 112 rendering_stats_instrumentation, |
| 115 resource_provider->best_texture_format())); | 113 resource_provider->best_texture_format())); |
| 116 } | 114 } |
| 117 | 115 |
| 118 TileManager::TileManager( | 116 TileManager::TileManager( |
| 119 TileManagerClient* client, | 117 TileManagerClient* client, |
| 120 ResourceProvider* resource_provider, | 118 ResourceProvider* resource_provider, |
| 121 scoped_ptr<RasterWorkerPool> raster_worker_pool, | 119 scoped_ptr<RasterWorkerPool> raster_worker_pool, |
| 122 size_t num_raster_threads, | 120 size_t num_raster_threads, |
| 123 bool use_color_estimator, | |
| 124 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 121 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
| 125 GLenum texture_format) | 122 GLenum texture_format) |
| 126 : client_(client), | 123 : client_(client), |
| 127 resource_pool_(ResourcePool::Create(resource_provider)), | 124 resource_pool_(ResourcePool::Create(resource_provider)), |
| 128 raster_worker_pool_(raster_worker_pool.Pass()), | 125 raster_worker_pool_(raster_worker_pool.Pass()), |
| 129 ever_exceeded_memory_budget_(false), | 126 ever_exceeded_memory_budget_(false), |
| 130 rendering_stats_instrumentation_(rendering_stats_instrumentation), | 127 rendering_stats_instrumentation_(rendering_stats_instrumentation), |
| 131 use_color_estimator_(use_color_estimator), | |
| 132 did_initialize_visible_tile_(false), | 128 did_initialize_visible_tile_(false), |
| 133 texture_format_(texture_format) { | 129 texture_format_(texture_format) { |
| 134 raster_worker_pool_->SetClient(this); | 130 raster_worker_pool_->SetClient(this); |
| 135 } | 131 } |
| 136 | 132 |
| 137 TileManager::~TileManager() { | 133 TileManager::~TileManager() { |
| 138 // Reset global state and manage. This should cause | 134 // Reset global state and manage. This should cause |
| 139 // our memory usage to drop to zero. | 135 // our memory usage to drop to zero. |
| 140 global_state_ = GlobalStateThatImpactsTilePriority(); | 136 global_state_ = GlobalStateThatImpactsTilePriority(); |
| 141 AssignGpuMemoryToTiles(); | 137 AssignGpuMemoryToTiles(); |
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 existing_pixel_refs[id] = decode_task; | 725 existing_pixel_refs[id] = decode_task; |
| 730 } | 726 } |
| 731 | 727 |
| 732 RasterTaskMetadata metadata = GetRasterTaskMetadata(*tile); | 728 RasterTaskMetadata metadata = GetRasterTaskMetadata(*tile); |
| 733 return RasterWorkerPool::CreateRasterTask( | 729 return RasterWorkerPool::CreateRasterTask( |
| 734 const_resource, | 730 const_resource, |
| 735 tile->picture_pile(), | 731 tile->picture_pile(), |
| 736 tile->content_rect(), | 732 tile->content_rect(), |
| 737 tile->contents_scale(), | 733 tile->contents_scale(), |
| 738 mts.raster_mode, | 734 mts.raster_mode, |
| 739 use_color_estimator_, | |
| 740 metadata, | 735 metadata, |
| 741 rendering_stats_instrumentation_, | 736 rendering_stats_instrumentation_, |
| 742 base::Bind(&TileManager::OnRasterTaskCompleted, | 737 base::Bind(&TileManager::OnRasterTaskCompleted, |
| 743 base::Unretained(this), | 738 base::Unretained(this), |
| 744 make_scoped_refptr(tile), | 739 make_scoped_refptr(tile), |
| 745 base::Passed(&resource), | 740 base::Passed(&resource), |
| 746 mts.raster_mode), | 741 mts.raster_mode), |
| 747 &decode_tasks); | 742 &decode_tasks); |
| 748 } | 743 } |
| 749 | 744 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 } | 813 } |
| 819 | 814 |
| 820 void TileManager::DidTileTreeBinChange(Tile* tile, | 815 void TileManager::DidTileTreeBinChange(Tile* tile, |
| 821 TileManagerBin new_tree_bin, | 816 TileManagerBin new_tree_bin, |
| 822 WhichTree tree) { | 817 WhichTree tree) { |
| 823 ManagedTileState& mts = tile->managed_state(); | 818 ManagedTileState& mts = tile->managed_state(); |
| 824 mts.tree_bin[tree] = new_tree_bin; | 819 mts.tree_bin[tree] = new_tree_bin; |
| 825 } | 820 } |
| 826 | 821 |
| 827 } // namespace cc | 822 } // namespace cc |
| OLD | NEW |