| OLD | NEW |
| 1 #include "DMTask.h" | 1 #include "DMTask.h" |
| 2 | |
| 3 #include "DMTaskRunner.h" | 2 #include "DMTaskRunner.h" |
| 4 #include "DMUtil.h" | |
| 5 #include "SkBitmap.h" | |
| 6 #include "SkCommandLineFlags.h" | |
| 7 | 3 |
| 8 namespace DM { | 4 namespace DM { |
| 9 | 5 |
| 10 Task::Task(Reporter* reporter, TaskRunner* taskRunner) | 6 Task::Task(Reporter* reporter, TaskRunner* taskRunner) |
| 11 : fReporter(reporter), fTaskRunner(taskRunner), fDepth(0) { | 7 : fReporter(reporter) |
| 8 , fTaskRunner(taskRunner) |
| 9 , fDepth(0) { |
| 12 fReporter->start(); | 10 fReporter->start(); |
| 13 } | 11 } |
| 14 | 12 |
| 15 Task::Task(const Task& parent) | 13 Task::Task(const Task& parent) |
| 16 : INHERITED(parent) | 14 : fReporter(parent.fReporter) |
| 17 , fReporter(parent.fReporter) | |
| 18 , fTaskRunner(parent.fTaskRunner) | 15 , fTaskRunner(parent.fTaskRunner) |
| 19 , fDepth(parent.depth()+1) { | 16 , fDepth(parent.depth() + 1) { |
| 20 fReporter->start(); | 17 fReporter->start(); |
| 21 } | 18 } |
| 22 | 19 |
| 23 Task::~Task() {} | |
| 24 | |
| 25 void Task::run() { | |
| 26 if (!this->shouldSkip()) { | |
| 27 this->draw(); | |
| 28 } | |
| 29 fReporter->finish(this->name()); | |
| 30 delete this; | |
| 31 } | |
| 32 | |
| 33 void Task::spawnChild(Task* task) { | |
| 34 if (!task->usesGpu()) { | |
| 35 fTaskRunner->add(task); | |
| 36 } else { | |
| 37 SkDEBUGFAIL("Sorry, we can't spawn GPU tasks. :( See comment in TaskRun
ner::wait()."); | |
| 38 } | |
| 39 } | |
| 40 | |
| 41 void Task::fail(const char* msg) { | 20 void Task::fail(const char* msg) { |
| 42 SkString failure(this->name()); | 21 SkString failure(this->name()); |
| 43 if (msg) { | 22 if (msg) { |
| 44 failure.appendf(": %s", msg); | 23 failure.appendf(": %s", msg); |
| 45 } | 24 } |
| 46 fReporter->fail(failure); | 25 fReporter->fail(failure); |
| 47 } | 26 } |
| 48 | 27 |
| 49 GrContextFactory* Task::getGrContextFactory() const { | 28 void Task::finish() { |
| 50 return fTaskRunner->getGrContextFactory(); | 29 fReporter->finish(this->name()); |
| 51 } | 30 } |
| 52 | 31 |
| 32 void Task::spawnChild(CpuTask* task) { |
| 33 fTaskRunner->add(task); |
| 34 } |
| 35 |
| 36 CpuTask::CpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} |
| 37 CpuTask::CpuTask(const Task& parent) : Task(parent) {} |
| 38 |
| 39 void CpuTask::run() { |
| 40 if (!this->shouldSkip()) { |
| 41 this->draw(); |
| 42 } |
| 43 this->finish(); |
| 44 SkDELETE(this); |
| 45 } |
| 46 |
| 47 GpuTask::GpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} |
| 48 |
| 49 void GpuTask::run(GrContextFactory& factory) { |
| 50 if (!this->shouldSkip()) { |
| 51 this->draw(&factory); |
| 52 } |
| 53 this->finish(); |
| 54 SkDELETE(this); |
| 55 } |
| 56 |
| 57 |
| 58 |
| 53 } // namespace DM | 59 } // namespace DM |
| OLD | NEW |