|  | // Copyright 2017 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | library fuchsia.images; | 
|  |  | 
|  | /// Information returned by methods such as `ImagePipe.PresentImage()` and | 
|  | /// `Session.Present()`, when the consumer begins preparing the first frame | 
|  | /// which includes the presented content. | 
|  | struct PresentationInfo { | 
|  | /// The actual time at which the enqueued operations are anticipated to take | 
|  | /// visible effect, expressed in nanoseconds in the `CLOCK_MONOTONIC` | 
|  | /// timebase. | 
|  | /// | 
|  | /// This value increases monotonically with each new frame, typically in | 
|  | /// increments of the `presentation_interval`. | 
|  | uint64 presentation_time; | 
|  |  | 
|  | /// The nominal amount of time which is anticipated to elapse between | 
|  | /// successively presented frames, expressed in nanoseconds.  When rendering | 
|  | /// to a display, the interval will typically be derived from the display | 
|  | /// refresh rate. | 
|  | /// | 
|  | /// This value is non-zero.  It may vary from time to time, such as when | 
|  | /// changing display modes. | 
|  | uint64 presentation_interval; | 
|  | }; |