DMTask.cpp revision ca5bb87a31b8cfde73dfd7c554127ee9b3e1ab58
1#include "DMTask.h" 2 3#include "DMTaskRunner.h" 4#include "DMUtil.h" 5#include "SkBitmap.h" 6#include "SkCommandLineFlags.h" 7 8namespace DM { 9 10Task::Task(Reporter* reporter, TaskRunner* taskRunner) 11 : fReporter(reporter), fTaskRunner(taskRunner), fDepth(0) { 12 fReporter->start(); 13} 14 15Task::Task(const Task& parent) 16 : INHERITED(parent) 17 , fReporter(parent.fReporter) 18 , fTaskRunner(parent.fTaskRunner) 19 , fDepth(parent.depth()+1) { 20 fReporter->start(); 21} 22 23Task::~Task() {} 24 25void Task::run() { 26 if (!this->shouldSkip()) { 27 this->draw(); 28 } 29 fReporter->finish(); 30 fReporter->updateStatusLine(); 31 delete this; 32} 33 34void Task::spawnChild(Task* task) { 35 if (!task->usesGpu()) { 36 fTaskRunner->add(task); 37 } else { 38 SkDEBUGFAIL("Sorry, we can't spawn GPU tasks. :( See comment in TaskRunner::wait()."); 39 } 40} 41 42void Task::fail() { 43 fReporter->fail(this->name()); 44} 45 46} // namespace DM 47