Chromium Code Reviews| Index: tools/gpuveto.cpp |
| =================================================================== |
| --- tools/gpuveto.cpp (revision 0) |
| +++ tools/gpuveto.cpp (revision 0) |
| @@ -0,0 +1,66 @@ |
| +/* |
| + * Copyright 2014 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#include "LazyDecodeBitmap.h" |
| +#include "SkCommandLineFlags.h" |
| +#include "SkPicture.h" |
| +#include "SkPictureRecorder.h" |
| +#include "SkStream.h" |
| + |
| +DEFINE_string2(readFile, r, "", "skp file to process."); |
| +DEFINE_bool2(quiet, q, false, "quiet"); |
| + |
| +// This tool just loads a single skp, replays into a new SkPicture (to |
| +// regenerate the GPU-specific tracking information) and then returns |
| +// the value of the suitableForGpuRasterization method. |
| +// Return codes: |
| +static const int kUnsuitable = 0; |
| +static const int kSuitable = 1; |
| +static const int kError = 2; |
| + |
| +int tool_main(int argc, char** argv); |
| +int tool_main(int argc, char** argv) { |
| + SkCommandLineFlags::SetUsage("Reports on an skp file's suitability for GPU rasterization"); |
| + SkCommandLineFlags::Parse(argc, argv); |
| + |
| + if (FLAGS_readFile.count() != 1) { |
| + if (!FLAGS_quiet) { |
| + SkDebugf("Missing input file\n"); |
| + } |
| + return kError; |
| + } |
| + |
| + SkFILEStream inputStream(FLAGS_readFile[0]); |
| + if (!inputStream.isValid()) { |
| + if (!FLAGS_quiet) { |
| + SkDebugf("Couldn't open file\n"); |
| + } |
| + return kError; |
| + } |
| + |
| + SkPicture::InstallPixelRefProc proc = &sk_tools::LazyDecodeBitmap; |
| + |
| + SkAutoTUnref<SkPicture> picture(SkPicture::CreateFromStream(&inputStream, proc)); |
| + if (NULL == picture.get()) { |
| + if (!FLAGS_quiet) { |
| + SkDebugf("Could not read the SkPicture\n"); |
| + } |
| + return kError; |
| + } |
| + |
| + SkPictureRecorder recorder; |
| + picture->draw(recorder.beginRecording(picture->width(), picture->height(), NULL, 0)); |
| + SkAutoTUnref<SkPicture> recorded(recorder.endRecording()); |
| + |
| + return recorded->suitableForGpuRasterization(NULL) ? kSuitable : kUnsuitable; |
|
bsalomon
2014/04/25 13:54:43
Should the tool really return an error code rather
rmistry
2014/04/25 16:22:19
Yes lets please return an error code.
|
| +} |
| + |
| +#if !defined SK_BUILD_FOR_IOS |
| +int main(int argc, char * const argv[]) { |
| + return tool_main(argc, (char**) argv); |
| +} |
| +#endif |
| Property changes on: tools\gpuveto.cpp |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |