| Index: cc/resources/rasterizer.cc
|
| diff --git a/cc/resources/rasterizer.cc b/cc/resources/rasterizer.cc
|
| index df7e27ecebcc147cb745db354527c4804d794934..fc27cfd04707b050edad723f54b390b97efa3e50 100644
|
| --- a/cc/resources/rasterizer.cc
|
| +++ b/cc/resources/rasterizer.cc
|
| @@ -56,24 +56,85 @@ RasterTask::~RasterTask() {}
|
|
|
| RasterTask* RasterTask::AsRasterTask() { return this; }
|
|
|
| -RasterTaskQueue::Item::Item(RasterTask* task, bool required_for_activation)
|
| - : task(task), required_for_activation(required_for_activation) {}
|
| +RasterTaskQueue::TaskSetSizes::TaskSetSizes() {
|
| + for (TaskSet task_set = 0; task_set < kMaxTaskSet; task_set++)
|
| + sizes_[task_set] = 0;
|
| +}
|
| +
|
| +RasterTaskQueue::Item::TaskSetCollection
|
| +RasterTaskQueue::TaskSetSizes::ToTaskSetCollection() const {
|
| + Item::TaskSetCollection task_set_collection;
|
| + for (TaskSet task_set = 0; task_set < kMaxTaskSet; task_set++) {
|
| + if (sizes_[task_set] > 0)
|
| + task_set_collection[task_set] = true;
|
| + }
|
| + return task_set_collection;
|
| +}
|
| +
|
| +size_t& RasterTaskQueue::TaskSetSizes::operator[](TaskSet task_set) {
|
| + return sizes_[task_set];
|
| +}
|
| +
|
| +const size_t& RasterTaskQueue::TaskSetSizes::operator[](
|
| + TaskSet task_set) const {
|
| + return sizes_[task_set];
|
| +}
|
| +
|
| +bool RasterTaskQueue::TaskSetSizes::operator==(
|
| + const TaskSetSizes& other) const {
|
| + for (size_t i = 0; i < kMaxTaskSet; i++) {
|
| + if (sizes_[i] != other.sizes_[i])
|
| + return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| +void RasterTaskQueue::TaskSetSizes::operator+=(
|
| + const Item::TaskSetCollection& task_set_collection) {
|
| + for (TaskSet task_set = 0; task_set < kMaxTaskSet; task_set++) {
|
| + if (task_set_collection[task_set])
|
| + sizes_[task_set]++;
|
| + }
|
| +}
|
| +
|
| +void RasterTaskQueue::TaskSetSizes::operator-=(
|
| + const Item::TaskSetCollection& task_set_collection) {
|
| + for (TaskSet task_set = 0; task_set < kMaxTaskSet; task_set++) {
|
| + if (task_set_collection[task_set])
|
| + sizes_[task_set]--;
|
| + }
|
| +}
|
| +
|
| +RasterTaskQueue::Item::Item(RasterTask* task,
|
| + const Item::TaskSetCollection& task_sets)
|
| + : task(task), task_sets(task_sets) {
|
| +}
|
|
|
| RasterTaskQueue::Item::~Item() {}
|
|
|
| -RasterTaskQueue::RasterTaskQueue() : required_for_activation_count(0u) {}
|
| +RasterTaskQueue::RasterTaskQueue() {
|
| +}
|
|
|
| RasterTaskQueue::~RasterTaskQueue() {}
|
|
|
| +bool RasterTaskQueue::VerifyTaskSetSizes() const {
|
| + TaskSetSizes actual_task_set_sizes;
|
| + Item::Vector::const_iterator it = items.begin();
|
| + while (it != items.end()) {
|
| + actual_task_set_sizes += it->task_sets;
|
| + ++it;
|
| + }
|
| + return actual_task_set_sizes == task_set_sizes;
|
| +}
|
| +
|
| void RasterTaskQueue::Swap(RasterTaskQueue* other) {
|
| items.swap(other->items);
|
| - std::swap(required_for_activation_count,
|
| - other->required_for_activation_count);
|
| + std::swap(task_set_sizes, other->task_set_sizes);
|
| }
|
|
|
| void RasterTaskQueue::Reset() {
|
| - required_for_activation_count = 0u;
|
| items.clear();
|
| + task_set_sizes = TaskSetSizes();
|
| }
|
|
|
| } // namespace cc
|
|
|