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

Side by Side Diff: cc/resources/pixel_buffer_raster_worker_pool.h

Issue 16190002: cc: Add new RasterWorkerPool interface. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 6 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
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CC_RESOURCES_PIXEL_BUFFER_RASTER_WORKER_POOL_H_
6 #define CC_RESOURCES_PIXEL_BUFFER_RASTER_WORKER_POOL_H_
7
8 #include <deque>
9
10 #include "cc/resources/raster_worker_pool.h"
11
12 namespace cc {
13
14 class CC_EXPORT PixelBufferRasterWorkerPool : public RasterWorkerPool,
15 public WorkerPoolClient {
16 public:
17 virtual ~PixelBufferRasterWorkerPool();
18
19 static scoped_ptr<RasterWorkerPool> Create(
20 ResourceProvider* resource_provider, size_t num_threads) {
21 return make_scoped_ptr<RasterWorkerPool>(
22 new PixelBufferRasterWorkerPool(resource_provider, num_threads));
23 }
24
25 // Overridden from WorkerPool:
26 virtual void Shutdown() OVERRIDE;
27 virtual void CheckForCompletedTasks() OVERRIDE;
28
29 // Overridden from RasterWorkerPool:
30 virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE;
31 virtual bool ForceUploadToComplete(const RasterTask& raster_task) OVERRIDE;
32
33 private:
34 PixelBufferRasterWorkerPool(ResourceProvider* resource_provider,
35 size_t num_threads);
36
37 // Overridden from WorkerPoolClient:
38 virtual void DidFinishDispatchingWorkerPoolCompletionCallbacks() OVERRIDE;
39
40 bool CanScheduleRasterTask(internal::RasterWorkerPoolTask* task);
41 void ScheduleMoreTasks();
42 void OnRasterTaskCompleted(
43 scoped_refptr<internal::RasterWorkerPoolTask> task,
44 bool was_canceled,
45 bool needs_upload);
46 void AbortPendingUploads();
47 void DidFinishRasterTask(internal::RasterWorkerPoolTask* task);
48
49 TaskMap pixel_buffer_tasks_;
50
51 typedef std::deque<scoped_refptr<internal::RasterWorkerPoolTask> > TaskDeque;
52 TaskDeque tasks_with_pending_upload_;
53
54 size_t bytes_pending_upload_;
55 bool has_performed_uploads_since_last_flush_;
56 bool did_dispatch_completion_callback_;
57
58 DISALLOW_COPY_AND_ASSIGN(PixelBufferRasterWorkerPool);
59 };
60
61 } // namespace cc
62
63 #endif // CC_RESOURCES_PIXEL_BUFFER_RASTER_WORKER_POOL_H_
OLDNEW
« no previous file with comments | « cc/resources/picture_layer_tiling_set_unittest.cc ('k') | cc/resources/pixel_buffer_raster_worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698