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 { 10 11 RasterizerTask::RasterizerTask() : did_schedule_(false), did_complete_(false) {} 12 13 RasterizerTask::~RasterizerTask() { 14 // Debugging CHECKs to help track down a use-after-free. 15 CHECK(!did_schedule_); 16 CHECK(!did_run_ || did_complete_); 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, 50 ImageDecodeTask::Vector* dependencies) 51 : resource_(resource) { 52 dependencies_.swap(*dependencies); 53 } 54 55 RasterTask::~RasterTask() {} 56 57 RasterTask* RasterTask::AsRasterTask() { return this; } 58 59 RasterTaskQueue::Item::Item(RasterTask* task, bool required_for_activation) 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 80