Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Unified Diff: dm/DMSerializeTask.cpp

Issue 345553003: Support serialization in SkRecord-backed SkPictures. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: tweak Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« dm/DMSKPTask.cpp ('K') | « dm/DMSerializeTask.h ('k') | dm/DMUtil.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« dm/DMSKPTask.cpp ('K') | « dm/DMSerializeTask.h ('k') | dm/DMUtil.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698