Home | History | Annotate | Download | only in VisualBench
      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();
     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