Chromium Code Reviews| Index: dm/DMReplayTask.cpp |
| diff --git a/dm/DMReplayTask.cpp b/dm/DMReplayTask.cpp |
| index 86838795d26d0929c4d092c4e6ca00070bf77fce..35a16cd48a90fcef235514ac01134247af4ad324 100644 |
| --- a/dm/DMReplayTask.cpp |
| +++ b/dm/DMReplayTask.cpp |
| @@ -8,6 +8,9 @@ |
| DEFINE_bool(replay, true, "If true, run picture replay tests."); |
| DEFINE_bool(rtree, true, "If true, run picture replay tests with an rtree."); |
| +DEFINE_bool(skr, true, "If true, run picture replay tests with SkRecord backend."); |
| + |
| +static const char* kSuffixes[] = { "replay", "rtree", "skr" }; |
| namespace DM { |
| @@ -16,22 +19,23 @@ ReplayTask::ReplayTask(const Task& parent, |
| SkBitmap reference, |
| Mode mode) |
| : CpuTask(parent) |
| - , fUseRTree(mode == kRTree_Mode) |
| - , fName(UnderJoin(parent.name().c_str(), fUseRTree ? "rtree" : "replay")) |
| + , fMode(mode) |
| + , fName(UnderJoin(parent.name().c_str(), kSuffixes[mode])) |
| , fGM(gm) |
| , fReference(reference) |
| {} |
| void ReplayTask::draw() { |
| SkAutoTDelete<SkBBHFactory> factory; |
| - if (fUseRTree) { |
| + if (kRTree_Mode == fMode) { |
| factory.reset(SkNEW(SkRTreeFactory)); |
| } |
| - SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get(), 0, factory.get())); |
| + SkAutoTUnref<SkPicture> recorded( |
| + RecordPicture(fGM.get(), factory.get(), kSkRecord_Mode == fMode)); |
| SkBitmap bitmap; |
| AllocatePixels(fReference, &bitmap); |
| - DrawPicture(recorded, &bitmap); |
| + DrawPicture(*recorded, &bitmap); |
| if (!BitmapsEqual(bitmap, fReference)) { |
| this->fail(); |
| this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); |
| @@ -42,14 +46,12 @@ bool ReplayTask::shouldSkip() const { |
| if (fGM->getFlags() & skiagm::GM::kSkipPicture_Flag) { |
| return true; |
| } |
| - |
| - if (FLAGS_rtree && fUseRTree) { |
| - return false; |
| - } |
| - if (FLAGS_replay && !fUseRTree) { |
| - return false; |
| + switch (fMode) { |
|
robertphillips
2014/06/24 18:34:46
if (!*) {
return true;
}
break;
?
mtklein
2014/06/24 19:17:03
Got rid of the switch entirely.
|
| + case kNormal_Mode: if (!FLAGS_replay) return true; break; |
| + case kRTree_Mode: if (!FLAGS_rtree) return true; break; |
| + case kSkRecord_Mode: if (!FLAGS_skr) return true; break; |
| } |
| - return true; |
| + return false; |
| } |
| } // namespace DM |