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, 60 const TaskSetCollection& task_sets) 61 : task(task), task_sets(task_sets) { 62 DCHECK(task_sets.any()); 63 } 64 65 RasterTaskQueue::Item::~Item() {} 66 67 RasterTaskQueue::RasterTaskQueue() { 68 } 69 70 RasterTaskQueue::~RasterTaskQueue() {} 71 72 void RasterTaskQueue::Swap(RasterTaskQueue* other) { 73 items.swap(other->items); 74 } 75 76 void RasterTaskQueue::Reset() { 77 items.clear(); 78 } 79 80 } // namespace cc 81