X11 Window System Integration Layer
[Window System Integration Layer]

Collaboration diagram for X11 Window System Integration Layer:



typedef VdpStatus VdpDeviceCreateX11 (Display *display, int screen, VdpDevice *device, VdpGetProcAddress **get_proc_address)
 Create a VdpDevice object for use with X11.
typedef VdpStatus VdpPresentationQueueTargetCreateX11 (VdpDevice device, Drawable drawable, VdpPresentationQueueTarget *target)
 Create a VdpPresentationQueueTarget for use with X11.
VdpDeviceCreateX11 vdp_device_create_x11
 Create a VdpDevice object for use with X11. This is an actual symbol of type VdpDeviceCreateX11.
#define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_CREATE_X11

Detailed Description

The set of VDPAU functionality specific to usage with the X Window System.

Library Layout

An X11-oriented VDPAU installation consists of the following components:

The VDPAU wrapper library implements just one function; vdp_device_create_x11. The wrapper will implement this function by dynamically loading the appropriate back-end driver file mentioned above. Long-term, the wrapper will use a VDPAU-specific X extension to determine which back-end driver to load. Currently, the wrapper library hard-codes the driver name as "nvidia", although this can be overridden using the environment variable VDPAU_DRIVER.

The back-end driver is expected to implement a function named vdp_imp_device_create_x11. The wrapper will call this function to actually implement the vdp_device_create_x11 application call.

Note that it is theoretically possible for an application to create multiple VdpDevice objects. In this case, the wrapper library may load multiple back-end drivers into the same application, and/or invoke a specific back-end driver's VdpImpDeviceCreateX11 multiple times. The wrapper libray imposes no policy regarding whether the application may instantiate multiple VdpDevice objects for the same display and/or screen. However, back-end drivers are free to limit the number of VdpDevice objects as required by their implementation.


Define Documentation

#define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_CREATE_X11

Typedef Documentation

typedef VdpStatus VdpDeviceCreateX11(Display *display, int screen,VdpDevice *device, VdpGetProcAddress **get_proc_address)

Create a VdpDevice object for use with X11.

Parameters:
[in] display The X Display that the VdpDevice VdpDevice will operate against.
[in] screen The X screen that the VdpDevice will operate against.
[out] device The new device's handle.
[out] get_proc_address The get_proc_address entry point to use with this device.
Returns:
VdpStatus The completion status of the operation.

Create a VdpPresentationQueueTarget for use with X11.

Parameters:
[in] device The device that will contain the queue target.
[in] drawable The X11 Drawable that the presentation queue will present into.
[out] target The new queue target's handle.
Returns:
VdpStatus The completion status of the operation.

Note: VDPAU expects to own the entire drawable for the duration of time that the presentation queue target exists. In particular, implementations may choose to manipulate client-visible X11 window state as required. As such, it is recommended that applications create a dedicated window for the presentation queue target, as a child (grand-child, ...) of their top-level application window.

Applications may also create child-windows of the presentation queue target, which will cover any presented video in the normal fashion. VDPAU implementations will not manipulate such child windows in any fashion.


Variable Documentation

Create a VdpDevice object for use with X11. This is an actual symbol of type VdpDeviceCreateX11.


Generated on 8 Feb 2010 for VDPAU by  doxygen 1.6.1