From: Christian König Date: Tue, 26 Apr 2011 09:34:23 +0000 (+0200) Subject: vdpau: implement PresentationQueueDestroy X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67d93ea940a9cac1645ce4d6bdc78c5aad812cb6;p=mesa.git vdpau: implement PresentationQueueDestroy --- diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c index 2837e7a306f..1e2c78616e9 100644 --- a/src/gallium/state_trackers/vdpau/presentation.c +++ b/src/gallium/state_trackers/vdpau/presentation.c @@ -66,8 +66,8 @@ vlVdpPresentationQueueCreate(VdpDevice device, return VDP_STATUS_RESOURCES; pq->device = dev; - pq->compositor = context->create_compositor(context); pq->drawable = pqt->drawable; + pq->compositor = context->create_compositor(context); if (!pq->compositor) { ret = VDP_STATUS_ERROR; goto no_compositor; @@ -89,7 +89,20 @@ no_compositor: VdpStatus vlVdpPresentationQueueDestroy(VdpPresentationQueue presentation_queue) { - return VDP_STATUS_NO_IMPLEMENTATION; + vlVdpPresentationQueue *pq; + + _debug_printf("[VDPAU] Destroying PresentationQueue\n"); + + pq = vlGetDataHTAB(presentation_queue); + if (!pq) + return VDP_STATUS_INVALID_HANDLE; + + pq->compositor->destroy(pq->compositor); + + vlRemoveDataHTAB(presentation_queue); + FREE(pq); + + return VDP_STATUS_OK; } VdpStatus