aboutsummaryrefslogtreecommitdiff
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2017-03-14 21:10:42 -0400
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2017-03-15 01:38:16 +0000
commit96cf2065f356ff93722953aa6a9d665fc377c40b (patch)
tree5b9a85088c690facba3f2e8fa05f9a8c337c4f84 /samplecode/SampleApp.cpp
parent9a8065d34dd090837c2a05bc60533fcc6268e6bb (diff)
option to make 'M' mean picture+serialize
BUG=skia: Change-Id: Ibb118edd0a4cf52c56635e3d32f1bd6fac338477 Reviewed-on: https://skia-review.googlesource.com/9704 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 1aac794ddd..9d5ea0bf5e 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -43,6 +43,9 @@
#include "SkCGUtils.h"
#endif
+#define PICTURE_MEANS_PIPE false
+#define SERIALIZE_PICTURE true
+
#if SK_SUPPORT_GPU
# include "gl/GrGLInterface.h"
# include "gl/GrGLUtil.h"
@@ -1362,10 +1365,13 @@ SkCanvas* SampleWindow::beforeChildren(SkCanvas* canvas) {
} else if (fSaveToSKP) {
canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
} else if (fUsePicture) {
- fPipeStream.reset(new SkDynamicMemoryWStream);
- canvas = fPipeSerializer.beginWrite(SkRect::MakeWH(this->width(), this->height()),
- fPipeStream.get());
-// canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
+ if (PICTURE_MEANS_PIPE) {
+ fPipeStream.reset(new SkDynamicMemoryWStream);
+ canvas = fPipeSerializer.beginWrite(SkRect::MakeWH(this->width(), this->height()),
+ fPipeStream.get());
+ } else {
+ canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
+ }
} else {
canvas = this->INHERITED::beforeChildren(canvas);
}
@@ -1427,13 +1433,17 @@ void SampleWindow::afterChildren(SkCanvas* orig) {
}
if (fUsePicture) {
- if (true) {
+ if (PICTURE_MEANS_PIPE) {
fPipeSerializer.endWrite();
sk_sp<SkData> data(fPipeStream->detachAsData());
fPipeDeserializer.playback(data->data(), data->size(), orig);
fPipeStream.reset();
} else {
sk_sp<SkPicture> picture(fRecorder.finishRecordingAsPicture());
+ if (SERIALIZE_PICTURE) {
+ auto data = picture->serialize();
+ picture = SkPicture::MakeFromData(data.get(), nullptr);
+ }
orig->drawPicture(picture.get());
}
}