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

Unified Diff: cc/resources/tile_manager.cc

Issue 21159007: cc: Adding support for RGBA_4444 tile textures (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: deprecate GLenum format throughout cc Created 7 years, 3 months 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 side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698