Collaboration diagram for VdpPresentationQueue; Video presentation (display) object:
![]() |
The exact location of the displayed content is Window System specific. For this reason, the Window System Integration Layer provides an API to create a VdpPresentationQueueTarget object (e.g. via VdpPresentationQueueTargetCreateX11) which encapsulates this information.
Note that the presentation queue performs no scaling of surfaces to match the display target's size, aspect ratio, etc.
Surfaces that are too large to fit into the display target will be clipped. Surfaces that are too small to fill the display target will be aligned to the top-left corner of the display target, with the balance of the display target being filled with a constant configurable "background" color.
Note that the presentation queue operates in a manner that is semantically equivalent to an overlay surface, with any required color key painting hidden internally. However, implementations are free to use whatever semantically equivalent technique they wish. Note that implementations that actually use color-keyed overlays will typically use the "background" color as the overlay color key value, so this color should be chosen with care.
Typedefs | |
typedef uint64_t | VdpTime |
The representation of a point in time. | |
typedef uint32_t | VdpPresentationQueueTarget |
An opaque handle representing the location where video will be presented. | |
typedef VdpStatus | VdpPresentationQueueTargetDestroy (VdpPresentationQueueTarget presentation_queue_target) |
Destroy a VdpPresentationQueueTarget. | |
typedef uint32_t | VdpPresentationQueue |
An opaque handle representing a presentation queue object. | |
typedef VdpStatus | VdpPresentationQueueCreate (VdpDevice device, VdpPresentationQueueTarget presentation_queue_target, VdpPresentationQueue *presentation_queue) |
Create a VdpPresentationQueue. | |
typedef VdpStatus | VdpPresentationQueueDestroy (VdpPresentationQueue presentation_queue) |
Destroy a VdpPresentationQueue. | |
typedef VdpStatus | VdpPresentationQueueSetBackgroundColor (VdpPresentationQueue presentation_queue, VdpColor *const background_color) |
Configure the background color setting. | |
typedef VdpStatus | VdpPresentationQueueGetBackgroundColor (VdpPresentationQueue presentation_queue, VdpColor *background_color) |
Retrieve the current background color setting. | |
typedef VdpStatus | VdpPresentationQueueGetTime (VdpPresentationQueue presentation_queue, VdpTime *current_time) |
Retrieve the presentation queue's "current" time. | |
typedef VdpStatus | VdpPresentationQueueDisplay (VdpPresentationQueue presentation_queue, VdpOutputSurface surface, uint32_t clip_width, uint32_t clip_height, VdpTime earliest_presentation_time) |
Enter a surface into the presentation queue. | |
typedef VdpStatus | VdpPresentationQueueBlockUntilSurfaceIdle (VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpTime *first_presentation_time) |
Wait for a surface to finish being displayed. | |
typedef VdpStatus | VdpPresentationQueueQuerySurfaceStatus (VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpPresentationQueueStatus *status, VdpTime *first_presentation_time) |
Poll the current queue status of a surface. | |
Enumerations | |
enum | VdpPresentationQueueStatus { VDP_PRESENTATION_QUEUE_STATUS_IDLE, VDP_PRESENTATION_QUEUE_STATUS_QUEUED, VDP_PRESENTATION_QUEUE_STATUS_VISIBLE } |
The status of a surface within a presentation queue. More... |
|
An opaque handle representing a presentation queue object.
|
|
Wait for a surface to finish being displayed.
|
|
Create a VdpPresentationQueue.
|
|
Destroy a VdpPresentationQueue.
|
|
Enter a surface into the presentation queue.
clip_width and 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 VdpOutputSurfaces 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. |
|
Retrieve the current background color setting.
|
|
Retrieve the presentation queue's "current" time.
|
|
Poll the current queue status of a surface.
|
|
Configure the background color setting.
|
|
An opaque handle representing the location where video will be presented. VdpPresentationQueueTarget are created using a Window System Integration Layer specific API, such as VdpPresentationQueueTargetCreateX11. |
|
Destroy a VdpPresentationQueueTarget.
|
|
The representation of a point in time. VdpTime timestamps are intended to be a high-precision timing system, potentially independent from any other time domain in the system. Time is represented in units of nanoseconds. The origin (i.e. the time represented by a value of 0) is implementation dependent. |
|
The status of a surface within a presentation queue.
|