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 #ifndef VisualInteractiveModule_DEFINED 9 #define VisualInteractiveModule_DEFINED 10 11 #include "VisualStreamTimingModule.h" 12 13 class SkCanvas; 14 15 /* 16 * This module for VisualBench is designed to display stats data dynamically 17 */ 18 class VisualInteractiveModule : public VisualStreamTimingModule { 19 public: 20 // TODO get rid of backpointer 21 VisualInteractiveModule(VisualBench* owner); 22 23 bool onHandleChar(SkUnichar c) override; 24 25 private: 26 void drawStats(SkCanvas*); 27 void renderFrame(SkCanvas*, Benchmark*, int loops) override; 28 bool timingFinished(Benchmark*, int loops, double measurement) override; 29 30 static const int kMeasurementCount = 64; // should be power of 2 for fast mod 31 double fMeasurements[kMeasurementCount]; 32 int fCurrentMeasurement; 33 bool fAdvance; 34 35 typedef VisualStreamTimingModule INHERITED; 36 }; 37 38 #endif 39