1c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// found in the LICENSE file. 4c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 5c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#ifndef WebBeginFrameArgs_h 6c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WebBeginFrameArgs_h 7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)struct WebBeginFrameArgs { 117242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WebBeginFrameArgs(double lastFrameTimeMonotonic, double deadline, double interval) 127242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci : lastFrameTimeMonotonic(lastFrameTimeMonotonic) 137242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci , deadline(deadline) 147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci , interval(interval) 157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci { } 167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // TODO: Remove this constructor once Chromium has been updated. 18c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) WebBeginFrameArgs(double lastFrameTimeMonotonic) 19c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) : lastFrameTimeMonotonic(lastFrameTimeMonotonic) 207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci , deadline(0) 217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci , interval(0) 22c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { } 23c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 24c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) // FIXME: Upgrade the time in CLOCK_MONOTONIC values to use a TimeTick like 25c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) // class rather than a bare double. 26c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 27c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) // FIXME: Extend this class to include the fields from Chrome 28c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) // BeginFrameArgs structure. 29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) // Time in CLOCK_MONOTONIC that is the most recent vsync time. 31c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) double lastFrameTimeMonotonic; 327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 337242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // Time in CLOCK_MONOTONIC by which the renderer should finish producing the current frame. 0 means a deadline wasn't set. 347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double deadline; 357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // Expected delta between two successive frame times. 0 if a regular interval isn't available. 377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double interval; 38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}; 39c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 40c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 41c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 42c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#endif 43