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

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

Issue 110883015: Add preliminary support for hw-accelerated tile rasterization. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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
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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); 160 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue());
161 state->SetInteger("completed_count", stats.completed_count); 161 state->SetInteger("completed_count", stats.completed_count);
162 state->SetInteger("canceled_count", stats.canceled_count); 162 state->SetInteger("canceled_count", stats.canceled_count);
163 return state.PassAs<base::Value>(); 163 return state.PassAs<base::Value>();
164 } 164 }
165 165
166 // static 166 // static
167 scoped_ptr<TileManager> TileManager::Create( 167 scoped_ptr<TileManager> TileManager::Create(
168 TileManagerClient* client, 168 TileManagerClient* client,
169 ResourceProvider* resource_provider, 169 ResourceProvider* resource_provider,
170 ContextProvider* context_provider,
170 size_t num_raster_threads, 171 size_t num_raster_threads,
171 RenderingStatsInstrumentation* rendering_stats_instrumentation, 172 RenderingStatsInstrumentation* rendering_stats_instrumentation,
172 bool use_map_image, 173 bool use_map_image,
173 size_t max_transfer_buffer_usage_bytes, 174 size_t max_transfer_buffer_usage_bytes,
174 size_t max_raster_usage_bytes, 175 size_t max_raster_usage_bytes,
175 GLenum map_image_texture_target) { 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, 182 resource_provider,
183 context_provider,
182 num_raster_threads, 184 num_raster_threads,
183 map_image_texture_target) : 185 map_image_texture_target) :
184 PixelBufferRasterWorkerPool::Create( 186 PixelBufferRasterWorkerPool::Create(
185 resource_provider, 187 resource_provider,
188 context_provider,
186 num_raster_threads, 189 num_raster_threads,
187 max_transfer_buffer_usage_bytes), 190 max_transfer_buffer_usage_bytes),
188 num_raster_threads, 191 num_raster_threads,
189 max_raster_usage_bytes, 192 max_raster_usage_bytes,
190 rendering_stats_instrumentation)); 193 rendering_stats_instrumentation));
191 } 194 }
192 195
193 TileManager::TileManager( 196 TileManager::TileManager(
194 TileManagerClient* client, 197 TileManagerClient* client,
195 ResourceProvider* resource_provider, 198 ResourceProvider* resource_provider,
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 continue; 896 continue;
894 } 897 }
895 898
896 // Create and append new image decode task for this pixel ref. 899 // Create and append new image decode task for this pixel ref.
897 RasterWorkerPool::Task decode_task = CreateImageDecodeTask( 900 RasterWorkerPool::Task decode_task = CreateImageDecodeTask(
898 tile, pixel_ref); 901 tile, pixel_ref);
899 decode_tasks.Insert(decode_task); 902 decode_tasks.Insert(decode_task);
900 existing_pixel_refs[id] = decode_task; 903 existing_pixel_refs[id] = decode_task;
901 } 904 }
902 905
903 return RasterWorkerPool::CreateRasterTask( 906 return raster_worker_pool_->CreateRasterTask(
vmpstr 2013/12/17 21:04:37 At some point in time we've decided to stick to st
reveman 2013/12/17 21:25:14 Oh, I didn't notice this change. The static vs non
alokp 2013/12/17 22:12:15 Changed it back to static.
904 const_resource, 907 const_resource,
905 tile->picture_pile(), 908 tile->picture_pile(),
906 tile->content_rect(), 909 tile->content_rect(),
907 tile->contents_scale(), 910 tile->contents_scale(),
908 mts.raster_mode, 911 mts.raster_mode,
909 mts.resolution, 912 mts.resolution,
910 tile->layer_id(), 913 tile->layer_id(),
911 static_cast<const void *>(tile), 914 static_cast<const void *>(tile),
912 tile->source_frame_number(), 915 tile->source_frame_number(),
916 tile->use_gpu_rasterization(),
913 rendering_stats_instrumentation_, 917 rendering_stats_instrumentation_,
914 base::Bind(&TileManager::OnRasterTaskCompleted, 918 base::Bind(&TileManager::OnRasterTaskCompleted,
915 base::Unretained(this), 919 base::Unretained(this),
916 tile->id(), 920 tile->id(),
917 base::Passed(&resource), 921 base::Passed(&resource),
918 mts.raster_mode), 922 mts.raster_mode),
919 &decode_tasks); 923 &decode_tasks);
920 } 924 }
921 925
922 void TileManager::OnImageDecodeTaskCompleted( 926 void TileManager::OnImageDecodeTaskCompleted(
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 int offset_y, 1020 int offset_y,
1017 int width, 1021 int width,
1018 int height) { 1022 int height) {
1019 scoped_refptr<TileBundle> bundle = make_scoped_refptr( 1023 scoped_refptr<TileBundle> bundle = make_scoped_refptr(
1020 new TileBundle(this, offset_x, offset_y, width, height)); 1024 new TileBundle(this, offset_x, offset_y, width, height));
1021 bundles_[bundle->id()] = bundle; 1025 bundles_[bundle->id()] = bundle;
1022 return bundle; 1026 return bundle;
1023 } 1027 }
1024 1028
1025 } // namespace cc 1029 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698