Home | History | Annotate | Download | only in web
      1 // Copyright 2014 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 WebBeginFrameArgs_h
      6 #define WebBeginFrameArgs_h
      7 
      8 namespace blink {
      9 
     10 struct WebBeginFrameArgs {
     11     WebBeginFrameArgs(double lastFrameTimeMonotonic, double deadline, double interval)
     12         : lastFrameTimeMonotonic(lastFrameTimeMonotonic)
     13         , deadline(deadline)
     14         , interval(interval)
     15     { }
     16 
     17     // TODO: Remove this constructor once Chromium has been updated.
     18     WebBeginFrameArgs(double lastFrameTimeMonotonic)
     19         : lastFrameTimeMonotonic(lastFrameTimeMonotonic)
     20         , deadline(0)
     21         , interval(0)
     22     { }
     23 
     24     // FIXME: Upgrade the time in CLOCK_MONOTONIC values to use a TimeTick like
     25     // class rather than a bare double.
     26 
     27     // FIXME: Extend this class to include the fields from Chrome
     28     // BeginFrameArgs structure.
     29 
     30     // Time in CLOCK_MONOTONIC that is the most recent vsync time.
     31     double lastFrameTimeMonotonic;
     32 
     33     // Time in CLOCK_MONOTONIC by which the renderer should finish producing the current frame. 0 means a deadline wasn't set.
     34     double deadline;
     35 
     36     // Expected delta between two successive frame times. 0 if a regular interval isn't available.
     37     double interval;
     38 };
     39 
     40 } // namespace blink
     41 
     42 #endif
     43