From 67d93ea940a9cac1645ce4d6bdc78c5aad812cb6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Tue, 26 Apr 2011 11:34:23 +0200 Subject: [PATCH] vdpau: implement PresentationQueueDestroy --- src/gallium/state_trackers/vdpau/presentation.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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 -- 2.30.2