Module: Mesa Branch: master Commit: d6942f781f9cf741e7013f01c2af31f0a5867cc9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d6942f781f9cf741e7013f01c2af31f0a5867cc9
Author: Maarten Lankhorst <[email protected]> Date: Mon Dec 19 10:16:06 2011 +0100 vdpau: Add background surface support Sets rgba layer as zeroth layer if a custom background_surface is specified. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Christian König <[email protected]> --- src/gallium/state_trackers/vdpau/mixer.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/vdpau/mixer.c b/src/gallium/state_trackers/vdpau/mixer.c index b0d48f0..898c50e 100644 --- a/src/gallium/state_trackers/vdpau/mixer.c +++ b/src/gallium/state_trackers/vdpau/mixer.c @@ -196,6 +196,7 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer, VdpLayer const *layers) { struct pipe_video_rect src_rect, dst_rect, dst_clip; + unsigned layer = 0; vlVdpVideoMixer *vmixer; vlVdpSurface *surf; @@ -224,8 +225,16 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer, if (!dst) return VDP_STATUS_INVALID_HANDLE; + if (background_surface != VDP_INVALID_HANDLE) { + vlVdpOutputSurface *bg = vlGetDataHTAB(background_surface); + if (!bg) + return VDP_STATUS_INVALID_HANDLE; + vl_compositor_set_rgba_layer(&vmixer->compositor, layer++, bg->sampler_view, + RectToPipe(background_source_rect, &src_rect), NULL); + } + vl_compositor_clear_layers(&vmixer->compositor); - vl_compositor_set_buffer_layer(&vmixer->compositor, 0, surf->video_buffer, + vl_compositor_set_buffer_layer(&vmixer->compositor, layer++, surf->video_buffer, RectToPipe(video_source_rect, &src_rect), NULL); vl_compositor_render(&vmixer->compositor, dst->surface, RectToPipe(destination_video_rect, &dst_rect), _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
