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 |