| /* |
| * 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 VisualLightweightBenchModule_DEFINED |
| #define VisualLightweightBenchModule_DEFINED |
| |
| #include "VisualStreamTimingModule.h" |
| |
| #include "ResultsWriter.h" |
| #include "SkPicture.h" |
| #include "VisualBench.h" |
| |
| class SkCanvas; |
| |
| /* |
| * This module is designed to be a minimal overhead timing module for VisualBench |
| */ |
| class VisualLightweightBenchModule : public VisualStreamTimingModule { |
| public: |
| // TODO get rid of backpointer |
| VisualLightweightBenchModule(VisualBench* owner); |
| |
| bool onHandleChar(SkUnichar c) override; |
| |
| private: |
| void renderFrame(SkCanvas*, Benchmark*, int loops) override; |
| bool timingFinished(Benchmark*, int loops, double measurement) override; |
| void printStats(Benchmark*, int loops); |
| |
| struct Record { |
| SkTArray<double> fMeasurements; |
| }; |
| int fCurrentSample; |
| SkTArray<Record> fRecords; |
| |
| // support framework |
| SkAutoTDelete<ResultsWriter> fResults; |
| |
| typedef VisualStreamTimingModule INHERITED; |
| }; |
| |
| #endif |