Index: cc/resources/tile_manager.cc |
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
index 3d1ce0be9867c876356d931dbf169aaddcef0005..fc05451b102b7be61d7f8252293917c242968626 100644 |
--- a/cc/resources/tile_manager.cc |
+++ b/cc/resources/tile_manager.cc |
@@ -103,6 +103,14 @@ inline ManagedTileBin BinFromTilePriority(const TilePriority& prio, |
// of time scheduling one enormous set of tasks. |
const size_t kMaxRasterTasks = 256u; |
+// static |
+cc::ResourceProvider::TextureFormat GetTextureFormat( |
+ cc::ResourceProvider* provider, |
+ bool use_rgba_4444_tiles) { |
+ return use_rgba_4444_tiles ? cc::ResourceProvider::RGBA_4444 : |
+ provider->best_texture_format(); |
+} |
+ |
} // namespace |
RasterTaskCompletionStats::RasterTaskCompletionStats() |
@@ -125,7 +133,8 @@ scoped_ptr<TileManager> TileManager::Create( |
size_t num_raster_threads, |
RenderingStatsInstrumentation* rendering_stats_instrumentation, |
bool use_map_image, |
- size_t max_transfer_buffer_usage_bytes) { |
+ size_t max_transfer_buffer_usage_bytes, |
+ bool use_rgba_4444_tiles) { |
return make_scoped_ptr( |
new TileManager(client, |
resource_provider, |
@@ -135,9 +144,13 @@ scoped_ptr<TileManager> TileManager::Create( |
PixelBufferRasterWorkerPool::Create( |
resource_provider, |
num_raster_threads, |
- max_transfer_buffer_usage_bytes), |
+ max_transfer_buffer_usage_bytes, |
+ GetTextureFormat(resource_provider, |
+ use_rgba_4444_tiles)), |
num_raster_threads, |
- rendering_stats_instrumentation)); |
+ rendering_stats_instrumentation, |
+ GetTextureFormat(resource_provider, |
+ use_rgba_4444_tiles))); |
} |
TileManager::TileManager( |
@@ -145,7 +158,8 @@ TileManager::TileManager( |
ResourceProvider* resource_provider, |
scoped_ptr<RasterWorkerPool> raster_worker_pool, |
size_t num_raster_threads, |
- RenderingStatsInstrumentation* rendering_stats_instrumentation) |
+ RenderingStatsInstrumentation* rendering_stats_instrumentation, |
+ ResourceProvider::TextureFormat texture_type) |
: client_(client), |
resource_pool_(ResourcePool::Create(resource_provider)), |
raster_worker_pool_(raster_worker_pool.Pass()), |
@@ -156,7 +170,8 @@ TileManager::TileManager( |
resources_releasable_(0), |
ever_exceeded_memory_budget_(false), |
rendering_stats_instrumentation_(rendering_stats_instrumentation), |
- did_initialize_visible_tile_(false) { |
+ did_initialize_visible_tile_(false), |
+ texture_type_(texture_type) { |
raster_worker_pool_->SetClient(this); |
} |
@@ -722,6 +737,7 @@ RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) { |
resource_pool_->AcquireResource( |
tile->tile_size_.size(), |
raster_worker_pool_->GetResourceFormat()); |
+ |
const Resource* const_resource = resource.get(); |
// Create and queue all image decode tasks that this tile depends on. |
@@ -765,7 +781,8 @@ RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) { |
tile->id(), |
base::Passed(&resource), |
mts.raster_mode), |
- &decode_tasks); |
+ &decode_tasks, |
+ texture_type_); |
} |
void TileManager::OnImageDecodeTaskCompleted( |