| |
| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| #ifndef SkBenchTimer_DEFINED |
| #define SkBenchTimer_DEFINED |
| |
| #include <SkTypes.h> |
| |
| |
| class BenchSysTimer; |
| class BenchGpuTimer; |
| |
| class SkGLContextHelper; |
| |
| /** |
| * SysTimers and GpuTimers are implemented orthogonally. |
| * This class combines 2 SysTimers and a GpuTimer into one single, |
| * platform specific Timer with a simple interface. The truncated |
| * timer doesn't include the time required for the GPU to finish |
| * its rendering. It should always be <= the un-truncated system |
| * times and (for GPU configurations) can be used to roughly (very |
| * roughly) gauge the GPU load/backlog. |
| */ |
| class BenchTimer { |
| public: |
| BenchTimer(SkGLContextHelper* gl = NULL); |
| ~BenchTimer(); |
| void start(); |
| void end(); |
| void truncatedEnd(); |
| double fCpu; |
| double fWall; |
| double fTruncatedCpu; |
| double fTruncatedWall; |
| double fGpu; |
| |
| private: |
| BenchSysTimer *fSysTimer; |
| BenchSysTimer *fTruncatedSysTimer; |
| #if SK_SUPPORT_GPU |
| BenchGpuTimer *fGpuTimer; |
| #endif |
| }; |
| |
| #endif |