Home | History | Annotate | Download | only in resources
      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