Display Preemption
Collaboration diagram for Display Preemption:


typedef void VdpPreemptionCallback(VdpDevice device, void *context)
 A callback to notify the client application that a device's display has been preempted. More...
typedef VdpStatus VdpPreemptionCallbackRegister(VdpDevice device, VdpPreemptionCallback callback, void *context)
 Configure the display preemption callback. More...

Detailed Description

The Window System may operate within a frame-work (such as Linux's VT switching) where the display is shared between the Window System (e.g. X) and some other output mechanism (e.g. the VT.) Given this scenario, the Window System's control of the display could be preempted, and restored, at any time.

VDPAU does not mandate that implementations hide such preemptions from VDPAU client applications; doing so may impose extreme burdens upon VDPAU implementations. Equally, however, implementations are free to hide such preemptions from client applications.

VDPAU allows implementations to inform the client application when such a preemption has occurred, and then refuse to continue further operation.

Similarly, some form of fatal hardware error could prevent further operation of the VDPAU implementation, without a complete re-initialization.

The following discusses the behavior of implementations that choose not to hide preemption from client applications.

When preemption occurs, VDPAU internally destroys all objects; the client application need not do this. However, if the client application wishes to continue operation, it must recreate all objects that it uses. It is probable that this recreation will not succeed until the display ownership is restored to the Window System.

Once preemption has occurred, all VDPAU entry points will return the specific error code VDP_STATUS_DISPLAY_PREEMPTED.

VDPAU client applications may also be notified of such preemptions and fatal errors via a callback. See VdpPreemptionCallbackRegister for more details.

Typedef Documentation

typedef void VdpPreemptionCallback(VdpDevice device, void *context)

A callback to notify the client application that a device's display has been preempted.

[in]deviceThe device that had its display preempted.
[in]contextThe client-supplied callback context information.
void No return value
typedef VdpStatus VdpPreemptionCallbackRegister(VdpDevice device, VdpPreemptionCallback callback, void *context)

Configure the display preemption callback.

[in]deviceThe device to be monitored for preemption.
[in]callbackThe client application's callback function. If NULL, the callback is unregistered.
[in]contextThe client-supplied callback context information. This information will be passed to the callback function if/when invoked.
VdpStatus The completion status of the operation.