skia2/tools/VisualBench/VisualBenchmarkStream.h

44 lines
1002 B
C++

/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
*/
#ifndef VisualBenchmarkStream_DEFINED
#define VisualBenchmarkStream_DEFINED
#include "Benchmark.h"
#include "gm.h"
#include "SkCommandLineFlags.h"
#include "SkPicture.h"
DECLARE_string(match);
class VisualBenchmarkStream {
public:
VisualBenchmarkStream(const SkSurfaceProps&);
static bool ReadPicture(const char* path, SkAutoTUnref<SkPicture>* pic);
Benchmark* next();
Benchmark* current() { return fBenchmark.get(); }
private:
Benchmark* innerNext();
SkSurfaceProps fSurfaceProps;
const BenchRegistry* fBenches;
const skiagm::GMRegistry* fGMs;
SkTArray<SkString> fSKPs;
SkAutoTUnref<Benchmark> fBenchmark;
const char* fSourceType; // What we're benching: bench, GM, SKP, ...
const char* fBenchType; // How we bench it: micro, playback, ...
int fCurrentSKP;
bool fIsWarmedUp;
};
#endif