[email protected] | 7beac1b5 | 2014-04-10 23:09:56 | [diff] [blame] | 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 |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "cc/resources/rasterizer.h" |
| 6 | |
| 7 | #include <algorithm> |
| 8 | |
| 9 | namespace cc { |
[email protected] | 7beac1b5 | 2014-04-10 23:09:56 | [diff] [blame] | 10 | |
| 11 | RasterizerTask::RasterizerTask() : did_schedule_(false), did_complete_(false) {} |
| 12 | |
| 13 | RasterizerTask::~RasterizerTask() { |
[email protected] | 4af28049 | 2014-04-22 20:22:38 | [diff] [blame] | 14 | // Debugging CHECKs to help track down a use-after-free. |
| 15 | CHECK(!did_schedule_); |
| 16 | CHECK(!did_run_ || did_complete_); |
[email protected] | 7beac1b5 | 2014-04-10 23:09:56 | [diff] [blame] | 17 | } |
| 18 | |
| 19 | ImageDecodeTask* RasterizerTask::AsImageDecodeTask() { return NULL; } |
| 20 | |
| 21 | RasterTask* RasterizerTask::AsRasterTask() { return NULL; } |
| 22 | |
| 23 | void RasterizerTask::WillSchedule() { DCHECK(!did_schedule_); } |
| 24 | |
| 25 | void RasterizerTask::DidSchedule() { |
| 26 | did_schedule_ = true; |
| 27 | did_complete_ = false; |
| 28 | } |
| 29 | |
| 30 | bool RasterizerTask::HasBeenScheduled() const { return did_schedule_; } |
| 31 | |
| 32 | void RasterizerTask::WillComplete() { DCHECK(!did_complete_); } |
| 33 | |
| 34 | void RasterizerTask::DidComplete() { |
| 35 | DCHECK(did_schedule_); |
| 36 | DCHECK(!did_complete_); |
| 37 | did_schedule_ = false; |
| 38 | did_complete_ = true; |
| 39 | } |
| 40 | |
| 41 | bool RasterizerTask::HasCompleted() const { return did_complete_; } |
| 42 | |
| 43 | ImageDecodeTask::ImageDecodeTask() {} |
| 44 | |
| 45 | ImageDecodeTask::~ImageDecodeTask() {} |
| 46 | |
| 47 | ImageDecodeTask* ImageDecodeTask::AsImageDecodeTask() { return this; } |
| 48 | |
| 49 | RasterTask::RasterTask(const Resource* resource, |
[email protected] | 026191dd8 | 2014-04-13 17:42:55 | [diff] [blame] | 50 | ImageDecodeTask::Vector* dependencies) |
[email protected] | 7beac1b5 | 2014-04-10 23:09:56 | [diff] [blame] | 51 | : resource_(resource) { |
| 52 | dependencies_.swap(*dependencies); |
| 53 | } |
| 54 | |
| 55 | RasterTask::~RasterTask() {} |
| 56 | |
| 57 | RasterTask* RasterTask::AsRasterTask() { return this; } |
| 58 | |
[email protected] | 026191dd8 | 2014-04-13 17:42:55 | [diff] [blame] | 59 | RasterTaskQueue::Item::Item(RasterTask* task, bool required_for_activation) |
[email protected] | 7beac1b5 | 2014-04-10 23:09:56 | [diff] [blame] | 60 | : task(task), required_for_activation(required_for_activation) {} |
| 61 | |
| 62 | RasterTaskQueue::Item::~Item() {} |
| 63 | |
| 64 | RasterTaskQueue::RasterTaskQueue() : required_for_activation_count(0u) {} |
| 65 | |
| 66 | RasterTaskQueue::~RasterTaskQueue() {} |
| 67 | |
| 68 | void RasterTaskQueue::Swap(RasterTaskQueue* other) { |
| 69 | items.swap(other->items); |
| 70 | std::swap(required_for_activation_count, |
| 71 | other->required_for_activation_count); |
| 72 | } |
| 73 | |
| 74 | void RasterTaskQueue::Reset() { |
| 75 | required_for_activation_count = 0u; |
| 76 | items.clear(); |
| 77 | } |
| 78 | |
| 79 | } // namespace cc |