Home | History | Annotate | Download | only in gfx
      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.
      4 
      5 #ifndef UI_GFX_FRAME_TIME_H
      6 #define UI_GFX_FRAME_TIME_H
      7 
      8 #include "base/time/time.h"
      9 #include "base/logging.h"
     10 
     11 namespace gfx {
     12 
     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     if (TimestampsAreHighRes())
     19       return base::TimeTicks::HighResNow();
     20     return base::TimeTicks::Now();
     21   }
     22 
     23 #if defined(OS_WIN)
     24   static base::TimeTicks FromQPCValue(LONGLONG qpc_value) {
     25     DCHECK(TimestampsAreHighRes());
     26     return base::TimeTicks::FromQPCValue(qpc_value);
     27   }
     28 #endif
     29 
     30   static bool TimestampsAreHighRes() {
     31     // This should really return base::TimeTicks::IsHighResNowFastAndReliable();
     32     // Returning false makes sure we are only using low-res timestamps until we
     33     // use FrameTime everywhere we need to. See crbug.com/315334
     34     return false;
     35   }
     36 };
     37 
     38 }
     39 
     40 #endif // UI_GFX_FRAME_TIME_H
     41