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

Side by Side Diff: cc/raster/zero_copy_tile_task_worker_pool.cc

Issue 1351283003: Allow task pools to reason about transparency. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make StagingBuffer constructor non-explicit Created 5 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 unified diff | Download patch
« no previous file with comments | « cc/raster/zero_copy_tile_task_worker_pool.h ('k') | cc/resources/resource_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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/raster/zero_copy_tile_task_worker_pool.h" 5 #include "cc/raster/zero_copy_tile_task_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl); 59 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl);
60 }; 60 };
61 61
62 } // namespace 62 } // namespace
63 63
64 // static 64 // static
65 scoped_ptr<TileTaskWorkerPool> ZeroCopyTileTaskWorkerPool::Create( 65 scoped_ptr<TileTaskWorkerPool> ZeroCopyTileTaskWorkerPool::Create(
66 base::SequencedTaskRunner* task_runner, 66 base::SequencedTaskRunner* task_runner,
67 TaskGraphRunner* task_graph_runner, 67 TaskGraphRunner* task_graph_runner,
68 ResourceProvider* resource_provider) { 68 ResourceProvider* resource_provider,
69 bool use_rgba_4444_texture_format) {
69 return make_scoped_ptr<TileTaskWorkerPool>(new ZeroCopyTileTaskWorkerPool( 70 return make_scoped_ptr<TileTaskWorkerPool>(new ZeroCopyTileTaskWorkerPool(
70 task_runner, task_graph_runner, resource_provider)); 71 task_runner, task_graph_runner, resource_provider,
72 use_rgba_4444_texture_format));
71 } 73 }
72 74
73 ZeroCopyTileTaskWorkerPool::ZeroCopyTileTaskWorkerPool( 75 ZeroCopyTileTaskWorkerPool::ZeroCopyTileTaskWorkerPool(
74 base::SequencedTaskRunner* task_runner, 76 base::SequencedTaskRunner* task_runner,
75 TaskGraphRunner* task_graph_runner, 77 TaskGraphRunner* task_graph_runner,
76 ResourceProvider* resource_provider) 78 ResourceProvider* resource_provider,
79 bool use_rgba_4444_texture_format)
77 : task_runner_(task_runner), 80 : task_runner_(task_runner),
78 task_graph_runner_(task_graph_runner), 81 task_graph_runner_(task_graph_runner),
79 namespace_token_(task_graph_runner->GetNamespaceToken()), 82 namespace_token_(task_graph_runner->GetNamespaceToken()),
80 resource_provider_(resource_provider), 83 resource_provider_(resource_provider),
81 task_set_finished_weak_ptr_factory_(this) { 84 use_rgba_4444_texture_format_(use_rgba_4444_texture_format),
82 } 85 task_set_finished_weak_ptr_factory_(this) {}
83 86
84 ZeroCopyTileTaskWorkerPool::~ZeroCopyTileTaskWorkerPool() { 87 ZeroCopyTileTaskWorkerPool::~ZeroCopyTileTaskWorkerPool() {
85 } 88 }
86 89
87 TileTaskRunner* ZeroCopyTileTaskWorkerPool::AsTileTaskRunner() { 90 TileTaskRunner* ZeroCopyTileTaskWorkerPool::AsTileTaskRunner() {
88 return this; 91 return this;
89 } 92 }
90 93
91 void ZeroCopyTileTaskWorkerPool::SetClient(TileTaskRunnerClient* client) { 94 void ZeroCopyTileTaskWorkerPool::SetClient(TileTaskRunnerClient* client) {
92 client_ = client; 95 client_ = client;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 it != completed_tasks_.end(); ++it) { 175 it != completed_tasks_.end(); ++it) {
173 TileTask* task = static_cast<TileTask*>(it->get()); 176 TileTask* task = static_cast<TileTask*>(it->get());
174 177
175 task->WillComplete(); 178 task->WillComplete();
176 task->CompleteOnOriginThread(this); 179 task->CompleteOnOriginThread(this);
177 task->DidComplete(); 180 task->DidComplete();
178 } 181 }
179 completed_tasks_.clear(); 182 completed_tasks_.clear();
180 } 183 }
181 184
182 ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat() const { 185 ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat(
183 return resource_provider_->memory_efficient_texture_format(); 186 bool must_support_alpha) const {
187 return use_rgba_4444_texture_format_
188 ? RGBA_4444
189 : resource_provider_->best_texture_format();
184 } 190 }
185 191
186 bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle() const { 192 bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle(
187 return !PlatformColor::SameComponentOrder(GetResourceFormat()); 193 bool must_support_alpha) const {
194 return !PlatformColor::SameComponentOrder(
195 GetResourceFormat(must_support_alpha));
188 } 196 }
189 197
190 scoped_ptr<RasterBuffer> ZeroCopyTileTaskWorkerPool::AcquireBufferForRaster( 198 scoped_ptr<RasterBuffer> ZeroCopyTileTaskWorkerPool::AcquireBufferForRaster(
191 const Resource* resource, 199 const Resource* resource,
192 uint64_t resource_content_id, 200 uint64_t resource_content_id,
193 uint64_t previous_content_id) { 201 uint64_t previous_content_id) {
194 return make_scoped_ptr<RasterBuffer>( 202 return make_scoped_ptr<RasterBuffer>(
195 new RasterBufferImpl(resource_provider_, resource)); 203 new RasterBufferImpl(resource_provider_, resource));
196 } 204 }
197 205
(...skipping 23 matching lines...) Expand all
221 new base::trace_event::TracedValue(); 229 new base::trace_event::TracedValue();
222 230
223 state->BeginArray("tasks_pending"); 231 state->BeginArray("tasks_pending");
224 for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) 232 for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set)
225 state->AppendBoolean(tasks_pending_[task_set]); 233 state->AppendBoolean(tasks_pending_[task_set]);
226 state->EndArray(); 234 state->EndArray();
227 return state; 235 return state;
228 } 236 }
229 237
230 } // namespace cc 238 } // namespace cc
OLDNEW
« no previous file with comments | « cc/raster/zero_copy_tile_task_worker_pool.h ('k') | cc/resources/resource_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698