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