pub struct Present2Args {
pub requested_presentation_time: Option<i64>,
pub acquire_fences: Option<Vec<Event>>,
pub release_fences: Option<Vec<Event>>,
pub requested_prediction_span: Option<i64>,
/* private fields */
}
Expand description
Arguments passed into Present2(). Note that every argument is mandatory.
Fields§
§requested_presentation_time: Option<i64>
requested_presentation_time
specifies the time on or after which the
client would like the enqueued operations to take visible effect
(light up pixels on the screen), expressed in nanoseconds in the
CLOCK_MONOTONIC
timebase.
Using a requested_presentation_time
in the present or past (such as 0)
schedules enqueued operations to take visible effect as soon as
possible, during the next frame to be prepared. Requested presentation
times must be monotonically increasing.
Using a requested_presentation_time
in the future schedules the enqueued
operations to take visible effect as closely as possible to or after
the stated time, but no earlier.
Each rendered frame has a target presentation time. This is when Scenic
aims to have the frame presented to the user. Before rendering a frame,
the scene manager applies all enqueued operations associated with all
prior calls to Present2 whose requested_presentation_time
is on or
before the frame’s target presentation time.
acquire_fences: Option<Vec<Event>>
Scenic will wait until all of a session’s acquire_fences
are ready
before it will execute the presented commands.
release_fences: Option<Vec<Event>>
release_fences
is the list of events that will be signalled by Scenic when
the following Present2 call’s acquire_fences
has been signalled, and
the updated session state has been fully committed: future frames will be
rendered using this state, and all frames generated using previous session
states have been fully-rendered and presented to the display.
requested_prediction_span: Option<i64>
requested_prediction_span
is the amount of time into the future Scenic
will provide predictions for. A span of 0 is guaranteed to provide at
least one future time.
Trait Implementations§
Source§impl Debug for Present2Args
impl Debug for Present2Args
Source§impl Decode<Present2Args, DefaultFuchsiaResourceDialect> for Present2Args
impl Decode<Present2Args, DefaultFuchsiaResourceDialect> for Present2Args
Source§impl Default for Present2Args
impl Default for Present2Args
Source§fn default() -> Present2Args
fn default() -> Present2Args
Source§impl Encode<Present2Args, DefaultFuchsiaResourceDialect> for &mut Present2Args
impl Encode<Present2Args, DefaultFuchsiaResourceDialect> for &mut Present2Args
Source§impl PartialEq for Present2Args
impl PartialEq for Present2Args
Source§impl ResourceTypeMarker for Present2Args
impl ResourceTypeMarker for Present2Args
Source§type Borrowed<'a> = &'a mut Present2Args
type Borrowed<'a> = &'a mut Present2Args
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moreSource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for Present2Args
impl TypeMarker for Present2Args
Source§type Owned = Present2Args
type Owned = Present2Args
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.