OLD | NEW |
1 #include "DMTask.h" | 1 #include "DMTask.h" |
2 #include "DMTaskRunner.h" | 2 #include "DMTaskRunner.h" |
3 | 3 |
4 namespace DM { | 4 namespace DM { |
5 | 5 |
6 Task::Task(Reporter* reporter, TaskRunner* taskRunner) | 6 Task::Task(Reporter* reporter, TaskRunner* taskRunner) |
7 : fReporter(reporter) | 7 : fReporter(reporter) |
8 , fTaskRunner(taskRunner) | 8 , fTaskRunner(taskRunner) |
9 , fDepth(0) { | 9 , fDepth(0) { |
10 fReporter->start(); | 10 fReporter->start(); |
11 } | 11 } |
12 | 12 |
13 Task::Task(const Task& parent) | 13 Task::Task(const Task& parent) |
14 : fReporter(parent.fReporter) | 14 : fReporter(parent.fReporter) |
15 , fTaskRunner(parent.fTaskRunner) | 15 , fTaskRunner(parent.fTaskRunner) |
16 , fDepth(parent.depth() + 1) { | 16 , fDepth(parent.depth() + 1) { |
17 fReporter->start(); | 17 fReporter->start(); |
18 } | 18 } |
19 | 19 |
20 void Task::fail(const char* msg) { | 20 void Task::fail(const char* msg) { |
21 SkString failure(this->name()); | 21 SkString failure(this->name()); |
22 if (msg) { | 22 if (msg) { |
23 failure.appendf(": %s", msg); | 23 failure.appendf(": %s", msg); |
24 } | 24 } |
25 fReporter->fail(failure); | 25 fReporter->fail(failure); |
26 } | 26 } |
27 | 27 |
| 28 void Task::start() { |
| 29 fStart = SkTime::GetMSecs(); |
| 30 } |
| 31 |
28 void Task::finish() { | 32 void Task::finish() { |
29 fReporter->finish(this->name()); | 33 fReporter->finish(this->name(), SkTime::GetMSecs() - fStart); |
30 } | 34 } |
31 | 35 |
32 void Task::spawnChild(CpuTask* task) { | 36 void Task::spawnChild(CpuTask* task) { |
33 fTaskRunner->add(task); | 37 fTaskRunner->add(task); |
34 } | 38 } |
35 | 39 |
36 CpuTask::CpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} | 40 CpuTask::CpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} |
37 CpuTask::CpuTask(const Task& parent) : Task(parent) {} | 41 CpuTask::CpuTask(const Task& parent) : Task(parent) {} |
38 | 42 |
39 void CpuTask::run() { | 43 void CpuTask::run() { |
| 44 this->start(); |
40 if (!this->shouldSkip()) { | 45 if (!this->shouldSkip()) { |
41 this->draw(); | 46 this->draw(); |
42 } | 47 } |
43 this->finish(); | 48 this->finish(); |
44 SkDELETE(this); | 49 SkDELETE(this); |
45 } | 50 } |
46 | 51 |
47 GpuTask::GpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} | 52 GpuTask::GpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, ta
skRunner) {} |
48 | 53 |
49 void GpuTask::run(GrContextFactory& factory) { | 54 void GpuTask::run(GrContextFactory& factory) { |
| 55 this->start(); |
50 if (!this->shouldSkip()) { | 56 if (!this->shouldSkip()) { |
51 this->draw(&factory); | 57 this->draw(&factory); |
52 } | 58 } |
53 this->finish(); | 59 this->finish(); |
54 SkDELETE(this); | 60 SkDELETE(this); |
55 } | 61 } |
56 | 62 |
57 | 63 |
58 | 64 |
59 } // namespace DM | 65 } // namespace DM |
OLD | NEW |