Center distiller results on desktop
[chromium-blink-merge.git] / ui / gfx / frame_time.h
blob58b27cb05773b9a4ff1c9943eef14920661b6b56
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_GFX_FRAME_TIME_H
6 #define UI_GFX_FRAME_TIME_H
8 #include "base/time/time.h"
9 #include "base/logging.h"
11 namespace gfx {
13 // FrameTime::Now() should be used to get timestamps with a timebase that
14 // is consistent across the graphics stack.
15 class FrameTime {
16 public:
17 static base::TimeTicks Now() {
18 return base::TimeTicks::Now();
21 #if defined(OS_WIN)
22 static base::TimeTicks FromQPCValue(LONGLONG qpc_value) {
23 DCHECK(TimestampsAreHighRes());
24 return base::TimeTicks::FromQPCValue(qpc_value);
26 #endif
28 static bool TimestampsAreHighRes() {
29 #if defined(OS_WIN)
30 return base::TimeTicks::IsHighResolution();
31 #else
32 // TODO(miu): Mac/Linux always provide high-resolution timestamps. Consider
33 // returning base::TimeTicks::IsHighResolution() for all platforms.
34 return false;
35 #endif
41 #endif // UI_GFX_FRAME_TIME_H