Chromium Code Reviews| Index: dm/DMSerializeTask.cpp |
| diff --git a/dm/DMSerializeTask.cpp b/dm/DMSerializeTask.cpp |
| index 62c45b3f048924c06fd2439b1b7fe5ea8446385c..da1879cdb0146b1c026f7f83a861f829abe81f26 100644 |
| --- a/dm/DMSerializeTask.cpp |
| +++ b/dm/DMSerializeTask.cpp |
| @@ -7,20 +7,26 @@ |
| #include "SkPixelRef.h" |
| DEFINE_bool(serialize, true, "If true, run picture serialization tests."); |
| +DECLARE_bool(skr); // in DMReplayTask.cpp |
| + |
| +static const char* kSuffixes[] = { "serialize", "serialize_skr" }; |
| namespace DM { |
| SerializeTask::SerializeTask(const Task& parent, |
| skiagm::GM* gm, |
| - SkBitmap reference) |
| + SkBitmap reference, |
| + SerializeTask::Mode mode) |
| : CpuTask(parent) |
| - , fName(UnderJoin(parent.name().c_str(), "serialize")) |
| + , fMode(mode) |
| + , fName(UnderJoin(parent.name().c_str(), kSuffixes[mode])) |
| , fGM(gm) |
| , fReference(reference) |
| {} |
| void SerializeTask::draw() { |
| - SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get())); |
| + SkAutoTUnref<SkPicture> recorded( |
| + RecordPicture(fGM.get(), NULL/*no BBH*/, kSkRecord_Mode == fMode)); |
| SkDynamicMemoryWStream wStream; |
| recorded->serialize(&wStream, NULL); |
| @@ -29,7 +35,7 @@ void SerializeTask::draw() { |
| SkBitmap bitmap; |
| AllocatePixels(fReference, &bitmap); |
| - DrawPicture(reconstructed, &bitmap); |
| + DrawPicture(*reconstructed, &bitmap); |
| if (!BitmapsEqual(bitmap, fReference)) { |
| this->fail(); |
| this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); |
| @@ -37,7 +43,14 @@ void SerializeTask::draw() { |
| } |
| bool SerializeTask::shouldSkip() const { |
| - return !FLAGS_serialize || fGM->getFlags() & skiagm::GM::kSkipPicture_Flag; |
| + if (fGM->getFlags() & skiagm::GM::kSkipPicture_Flag) { |
| + return true; |
| + } |
| + switch (fMode) { |
|
robertphillips
2014/06/24 18:34:46
formatting ?
mtklein
2014/06/24 19:17:03
Ditto.
|
| + case kNormal_Mode: if (!FLAGS_serialize) return true; break; |
| + case kSkRecord_Mode: if (!FLAGS_skr) return true; break; |
| + } |
| + return false; |
| } |
| } // namespace DM |