Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: cc/resources/tile_manager.cc

Issue 83883002: cc: Allow TEXTURE_RECTANGLE_ARB to be used for tile textures. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review feedback Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/test/fake_tile_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/test/fake_tile_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698