1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 * 7 */ 8 9 #ifndef VisualBenchmarkStream_DEFINED 10 #define VisualBenchmarkStream_DEFINED 11 12 #include "Benchmark.h" 13 #include "gm.h" 14 #include "SkCommandLineFlags.h" 15 #include "SkPicture.h" 16 17 DECLARE_string(match); 18 19 class VisualBenchmarkStream { 20 public: 21 VisualBenchmarkStream(const SkSurfaceProps&, bool justSKP = false); 22 23 static bool ReadPicture(const char* path, SkAutoTUnref<SkPicture>* pic); 24 25 Benchmark* next(); current()26 Benchmark* current() { return fBenchmark.get(); } 27 28 private: 29 Benchmark* innerNext(); 30 31 SkSurfaceProps fSurfaceProps; 32 const BenchRegistry* fBenches; 33 const skiagm::GMRegistry* fGMs; 34 SkTArray<SkString> fSKPs; 35 SkAutoTUnref<Benchmark> fBenchmark; 36 37 const char* fSourceType; // What we're benching: bench, GM, SKP, ... 38 const char* fBenchType; // How we bench it: micro, playback, ... 39 int fCurrentSKP; 40 bool fIsWarmedUp; 41 }; 42 43 #endif 44