aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/get_images_from_skps.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-03-09 13:08:38 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-09 19:12:50 +0000
commit43f0ba073068b6334844bd0e2e48f11ddb2b068d (patch)
tree37599b4fccc722762ce91ae54f95493938b6f8cc /tools/get_images_from_skps.cpp
parent7946c0cf788ea673601022191fc36cb07ea4e5e0 (diff)
update tool to sniff images during deserialization
Bug: skia: Change-Id: I0162225772a5fe9849d3d51b2d1dd5d67c606097 Reviewed-on: https://skia-review.googlesource.com/113212 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'tools/get_images_from_skps.cpp')
-rw-r--r--tools/get_images_from_skps.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/tools/get_images_from_skps.cpp b/tools/get_images_from_skps.cpp
index da66e58bdc..35624348ff 100644
--- a/tools/get_images_from_skps.cpp
+++ b/tools/get_images_from_skps.cpp
@@ -125,24 +125,16 @@ struct Sniffer {
};
static bool get_images_from_file(const SkString& file) {
+ Sniffer sniff(file.c_str());
auto stream = SkStream::MakeFromFile(file.c_str());
- sk_sp<SkPicture> picture(SkPicture::MakeFromStream(stream.get()));
- if (!picture) {
- return false;
- }
- SkDynamicMemoryWStream scratch;
- Sniffer sniff(file.c_str());
- SkSerialProcs procs;
- procs.fImageProc = [](SkImage* image, void* ctx) {
- if (auto data = image->refEncodedData()) {
- ((Sniffer*)ctx)->sniff(data->data(), data->size());
- }
- return SkData::MakeEmpty();
+ SkDeserialProcs procs;
+ procs.fImageProc = [](const void* data, size_t size, void* ctx) -> sk_sp<SkImage> {
+ ((Sniffer*)ctx)->sniff(data, size);
+ return nullptr;
};
procs.fImageCtx = &sniff;
- picture->serialize(&procs);
- return true;
+ return SkPicture::MakeFromStream(stream.get(), &procs) != nullptr;
}
int main(int argc, char** argv) {