VdpPresentationQueueDisplay

Type Alias VdpPresentationQueueDisplay 

Source
pub type VdpPresentationQueueDisplay = Option<unsafe extern "C" fn(presentation_queue: VdpPresentationQueue, surface: VdpOutputSurface, clip_width: u32, clip_height: u32, earliest_presentation_time: VdpTime) -> VdpStatus>;
Expand description

\brief Enter a surface into the presentation queue. \param[in] presentation_queue The queue to query. \param[in] surface The surface to enter into the queue. \param[in] clip_width If set to a non-zero value, the presentation queue will display only clip_width pixels of the surface (anchored to the top-left corner of the surface. \param[in] clip_height If set to a non-zero value, the presentation queue will display only clip_height lines of the surface (anchored to the top-left corner of the surface. \param[in] earliest_presentation_time The timestamp associated with the surface. The presentation queue will not display the surface until the presentation queue’s current time is at least this value. \return VdpStatus The completion status of the operation.

Applications may choose to allow resizing of the presentation queue target (which may be e.g. a regular Window when using an X11-based implementation).

\b clip_width and \b clip_height may be used to limit the size of the displayed region of a surface, in order to match the specific region that was rendered to.

In turn, this allows the application to allocate over-sized (e.g. screen-sized) surfaces, but render to a region that matches the current size of the video window.

Using this technique, an application’s response to window resizing may simply be to render to, and display, a different region of the surface, rather than de-/re-allocation of surfaces to match the updated window size.

Implementations may impose an upper bound on the number of entries contained by the presentation queue at a given time. This limit is likely different to the number of \ref VdpOutputSurface “VdpOutputSurface“s that may be allocated at a given time. This limit applies to entries in the QUEUED or VISIBLE state only. In other words, entries that have transitioned from a QUEUED or VISIBLE state to an IDLE state do not count toward this limit.

Aliased Type§

pub enum VdpPresentationQueueDisplay {
    None,
    Some(unsafe extern "C" fn(u32, u32, u32, u32, u64) -> u32),
}

Variants§

§1.0.0

None

No value.

§1.0.0

Some(unsafe extern "C" fn(u32, u32, u32, u32, u64) -> u32)

Some value of type T.