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