Chromium Code Reviews| Index: dm/DMReplayTask.cpp |
| diff --git a/dm/DMReplayTask.cpp b/dm/DMReplayTask.cpp |
| index a0ecf5fadf7812e282b1a8a7b745a698204fda77..177d8760cd6c66eb4cebd695477b31e51cb9736f 100644 |
| --- a/dm/DMReplayTask.cpp |
| +++ b/dm/DMReplayTask.cpp |
| @@ -6,21 +6,35 @@ |
| #include "SkPicture.h" |
| DEFINE_bool(replay, false, "If true, run picture replay tests."); |
| +DEFINE_bool(rtree, false, "If true, run picture replay tests with an rtree."); |
| namespace DM { |
| +static const char* kReplay = "replay"; |
| +static const char* kRTree = "rtree"; |
| + |
| +static const char* flags_name(uint32_t flags) { |
| + switch (flags) { |
| + case 0: return kReplay; |
| + case SkPicture::kOptimizeForClippedPlayback_RecordingFlag: return kRTree; |
| + default: return "hey-give-me-a-name"; |
|
epoger
2013/10/30 19:37:01
maybe SkASSERT failure in this case?
|
| + } |
| +} |
| + |
| ReplayTask::ReplayTask(const Task& parent, |
| skiagm::GM* gm, |
| - SkBitmap reference) |
| + SkBitmap reference, |
| + uint32_t recordFlags) |
| : Task(parent) |
| - , fName(UnderJoin(parent.name().c_str(), "replay")) |
| + , fName(UnderJoin(parent.name().c_str(), flags_name(recordFlags))) |
| , fGM(gm) |
| , fReference(reference) |
| + , fRecordFlags(recordFlags) |
| {} |
| void ReplayTask::draw() { |
| SkPicture recorded; |
| - RecordPicture(fGM.get(), &recorded); |
| + RecordPicture(fGM.get(), &recorded, fRecordFlags); |
| SkBitmap bitmap; |
| SetupBitmap(fReference.config(), fGM.get(), &bitmap); |
| @@ -32,7 +46,17 @@ void ReplayTask::draw() { |
| } |
| bool ReplayTask::shouldSkip() const { |
| - return !FLAGS_replay || fGM->getFlags() & skiagm::GM::kSkipPicture_Flag; |
| + if (fGM->getFlags() & skiagm::GM::kSkipPicture_Flag) { |
| + return true; |
| + } |
| + |
| + if (FLAGS_rtree && flags_name(fRecordFlags) == kRTree) { |
|
epoger
2013/10/30 19:37:01
It seems very strange to me that we change code pa
|
| + return false; |
|
epoger
2013/10/30 19:37:01
Maybe it's just me, but I would find it easier to
|
| + } |
| + if (FLAGS_replay && flags_name(fRecordFlags) == kReplay) { |
|
epoger
2013/10/30 19:37:01
Here and above, please put in more parentheses. N
|
| + return false; |
| + } |
| + return true; |
| } |
| } // namespace DM |