// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_GFX_FRAME_TIME_H
#define UI_GFX_FRAME_TIME_H

#include "base/time/time.h"
#include "base/logging.h"

namespace gfx {

// FrameTime::Now() should be used to get timestamps with a timebase that
// is consistent across the graphics stack.
class FrameTime {
 public:
  static base::TimeTicks Now() {
    if (TimestampsAreHighRes())
      return base::TimeTicks::HighResNow();
    return base::TimeTicks::Now();
  }

#if defined(OS_WIN)
  static base::TimeTicks FromQPCValue(LONGLONG qpc_value) {
    DCHECK(TimestampsAreHighRes());
    return base::TimeTicks::FromQPCValue(qpc_value);
  }
#endif

  static bool TimestampsAreHighRes() {
    return base::TimeTicks::IsHighResNowFastAndReliable();
  }
};

}

#endif // UI_GFX_FRAME_TIME_H
