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

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

Issue 375303002: cc: Refactor ResourceProvider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments addressed Created 6 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/image_copy_raster_worker_pool.h" 5 #include "cc/resources/image_copy_raster_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/debug/traced_value.h" 10 #include "cc/debug/traced_value.h"
11 #include "cc/resources/resource_pool.h" 11 #include "cc/resources/resource_pool.h"
12 #include "cc/resources/scoped_resource.h" 12 #include "cc/resources/scoped_resource.h"
13 #include "gpu/command_buffer/client/gles2_interface.h"
14
15 using gpu::gles2::GLES2Interface;
danakj 2014/07/14 15:29:11 not needed?
sohanjg 2014/07/14 15:59:28 Done.
13 16
14 namespace cc { 17 namespace cc {
15 18
16 // static 19 // static
17 scoped_ptr<RasterWorkerPool> ImageCopyRasterWorkerPool::Create( 20 scoped_ptr<RasterWorkerPool> ImageCopyRasterWorkerPool::Create(
18 base::SequencedTaskRunner* task_runner, 21 base::SequencedTaskRunner* task_runner,
19 TaskGraphRunner* task_graph_runner, 22 TaskGraphRunner* task_graph_runner,
23 ContextProvider* context_provider,
20 ResourceProvider* resource_provider, 24 ResourceProvider* resource_provider,
21 ResourcePool* resource_pool) { 25 ResourcePool* resource_pool) {
22 return make_scoped_ptr<RasterWorkerPool>(new ImageCopyRasterWorkerPool( 26 return make_scoped_ptr<RasterWorkerPool>(
23 task_runner, task_graph_runner, resource_provider, resource_pool)); 27 new ImageCopyRasterWorkerPool(task_runner,
28 task_graph_runner,
29 context_provider,
30 resource_provider,
31 resource_pool));
24 } 32 }
25 33
26 ImageCopyRasterWorkerPool::ImageCopyRasterWorkerPool( 34 ImageCopyRasterWorkerPool::ImageCopyRasterWorkerPool(
27 base::SequencedTaskRunner* task_runner, 35 base::SequencedTaskRunner* task_runner,
28 TaskGraphRunner* task_graph_runner, 36 TaskGraphRunner* task_graph_runner,
37 ContextProvider* context_provider,
29 ResourceProvider* resource_provider, 38 ResourceProvider* resource_provider,
30 ResourcePool* resource_pool) 39 ResourcePool* resource_pool)
31 : task_runner_(task_runner), 40 : task_runner_(task_runner),
32 task_graph_runner_(task_graph_runner), 41 task_graph_runner_(task_graph_runner),
33 namespace_token_(task_graph_runner->GetNamespaceToken()), 42 namespace_token_(task_graph_runner->GetNamespaceToken()),
43 context_provider_(context_provider),
34 resource_provider_(resource_provider), 44 resource_provider_(resource_provider),
35 resource_pool_(resource_pool), 45 resource_pool_(resource_pool),
36 has_performed_copy_since_last_flush_(false), 46 has_performed_copy_since_last_flush_(false),
37 raster_tasks_pending_(false), 47 raster_tasks_pending_(false),
38 raster_tasks_required_for_activation_pending_(false), 48 raster_tasks_required_for_activation_pending_(false),
39 raster_finished_weak_ptr_factory_(this) {} 49 raster_finished_weak_ptr_factory_(this) {
50 }
40 51
41 ImageCopyRasterWorkerPool::~ImageCopyRasterWorkerPool() { 52 ImageCopyRasterWorkerPool::~ImageCopyRasterWorkerPool() {
42 DCHECK_EQ(0u, raster_task_states_.size()); 53 DCHECK_EQ(0u, raster_task_states_.size());
43 } 54 }
44 55
45 Rasterizer* ImageCopyRasterWorkerPool::AsRasterizer() { return this; } 56 Rasterizer* ImageCopyRasterWorkerPool::AsRasterizer() { return this; }
46 57
47 void ImageCopyRasterWorkerPool::SetClient(RasterizerClient* client) { 58 void ImageCopyRasterWorkerPool::SetClient(RasterizerClient* client) {
48 client_ = client; 59 client_ = client;
49 } 60 }
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 "rasterizing", 230 "rasterizing",
220 "state", 231 "state",
221 TracedValue::FromValue(StateAsValue().release())); 232 TracedValue::FromValue(StateAsValue().release()));
222 client_->DidFinishRunningTasksRequiredForActivation(); 233 client_->DidFinishRunningTasksRequiredForActivation();
223 } 234 }
224 235
225 void ImageCopyRasterWorkerPool::FlushCopies() { 236 void ImageCopyRasterWorkerPool::FlushCopies() {
226 if (!has_performed_copy_since_last_flush_) 237 if (!has_performed_copy_since_last_flush_)
227 return; 238 return;
228 239
229 resource_provider_->ShallowFlushIfSupported(); 240 if (context_provider_)
241 context_provider_->ContextGL()->ShallowFlushCHROMIUM();
230 has_performed_copy_since_last_flush_ = false; 242 has_performed_copy_since_last_flush_ = false;
231 } 243 }
232 244
233 scoped_ptr<base::Value> ImageCopyRasterWorkerPool::StateAsValue() const { 245 scoped_ptr<base::Value> ImageCopyRasterWorkerPool::StateAsValue() const {
234 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue); 246 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue);
235 247
236 state->SetInteger("pending_count", raster_task_states_.size()); 248 state->SetInteger("pending_count", raster_task_states_.size());
237 state->SetBoolean("tasks_required_for_activation_pending", 249 state->SetBoolean("tasks_required_for_activation_pending",
238 raster_tasks_required_for_activation_pending_); 250 raster_tasks_required_for_activation_pending_);
239 state->Set("staging_state", StagingStateAsValue().release()); 251 state->Set("staging_state", StagingStateAsValue().release());
(...skipping 11 matching lines...) Expand all
251 resource_pool_->total_resource_count() - 263 resource_pool_->total_resource_count() -
252 resource_pool_->acquired_resource_count()); 264 resource_pool_->acquired_resource_count());
253 staging_state->SetInteger("bytes_pending_copy", 265 staging_state->SetInteger("bytes_pending_copy",
254 resource_pool_->total_memory_usage_bytes() - 266 resource_pool_->total_memory_usage_bytes() -
255 resource_pool_->acquired_memory_usage_bytes()); 267 resource_pool_->acquired_memory_usage_bytes());
256 268
257 return staging_state.PassAs<base::Value>(); 269 return staging_state.PassAs<base::Value>();
258 } 270 }
259 271
260 } // namespace cc 272 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698