summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorChristian König <[email protected]>2012-02-29 15:54:56 +0100
committerChristian König <[email protected]>2012-03-02 13:14:21 +0100
commit74a4e9089488e7f341d21053bbf2d4aa52b99b70 (patch)
tree5a37679f47672bf0e8798b15bbd9dd6513dc5f37 /src/gallium/state_trackers
parentb90727bb241e4a04158d34aad078cb18e478fea7 (diff)
vl/compositor: add support for per layer dst areas
Signed-off-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/vdpau/mixer.c4
-rw-r--r--src/gallium/state_trackers/vdpau/output.c4
-rw-r--r--src/gallium/state_trackers/xvmc/surface.c3
3 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/vdpau/mixer.c b/src/gallium/state_trackers/vdpau/mixer.c
index 066d60974f1..9a97501e456 100644
--- a/src/gallium/state_trackers/vdpau/mixer.c
+++ b/src/gallium/state_trackers/vdpau/mixer.c
@@ -265,9 +265,9 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer,
default:
return VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE;
};
- vl_compositor_set_buffer_layer(&vmixer->cstate, compositor, layer++, surf->video_buffer,
+ vl_compositor_set_buffer_layer(&vmixer->cstate, compositor, layer, surf->video_buffer,
RectToPipe(video_source_rect, &src_rect), NULL, deinterlace);
- vl_compositor_set_dst_area(&vmixer->cstate, RectToPipe(destination_video_rect, &dst_rect));
+ vl_compositor_set_layer_dst_area(&vmixer->cstate, layer++, RectToPipe(destination_video_rect, &dst_rect));
vl_compositor_set_dst_clip(&vmixer->cstate, RectToPipe(destination_rect, &dst_clip));
vl_compositor_render(&vmixer->cstate, compositor, dst->surface, &dst->dirty_area);
diff --git a/src/gallium/state_trackers/vdpau/output.c b/src/gallium/state_trackers/vdpau/output.c
index 9113e2574e2..b2c89620d29 100644
--- a/src/gallium/state_trackers/vdpau/output.c
+++ b/src/gallium/state_trackers/vdpau/output.c
@@ -310,7 +310,7 @@ vlVdpOutputSurfacePutBitsIndexed(VdpOutputSurface surface,
vl_compositor_clear_layers(cstate);
vl_compositor_set_palette_layer(cstate, compositor, 0, sv_idx, sv_tbl, NULL, NULL, false);
- vl_compositor_set_dst_area(cstate, RectToPipe(destination_rect, &dst_rect));
+ vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect));
vl_compositor_render(cstate, compositor, vlsurface->surface, NULL);
pipe_sampler_view_reference(&sv_idx, NULL);
@@ -473,7 +473,7 @@ vlVdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface,
vl_compositor_set_layer_blend(cstate, 0, blend, false);
vl_compositor_set_rgba_layer(cstate, compositor, 0, src_vlsurface->sampler_view,
RectToPipe(source_rect, &src_rect), NULL, NULL);
- vl_compositor_set_dst_area(cstate, RectToPipe(destination_rect, &dst_rect));
+ vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect));
vl_compositor_render(cstate, compositor, dst_vlsurface->surface, NULL);
context->delete_blend_state(context, blend);
diff --git a/src/gallium/state_trackers/xvmc/surface.c b/src/gallium/state_trackers/xvmc/surface.c
index fcf6e619166..615fd08d2a1 100644
--- a/src/gallium/state_trackers/xvmc/surface.c
+++ b/src/gallium/state_trackers/xvmc/surface.c
@@ -432,7 +432,8 @@ Status XvMCPutSurface(Display *dpy, XvMCSurface *surface, Drawable drawable,
// Workaround for r600g, there seems to be a bug in the fence refcounting code
pipe->screen->fence_reference(pipe->screen, &surface_priv->fence, NULL);
- vl_compositor_set_dst_area(cstate, &dst_rect);
+ vl_compositor_set_layer_dst_area(cstate, 0, &dst_rect);
+ vl_compositor_set_layer_dst_area(cstate, 1, &dst_rect);
vl_compositor_render(cstate, compositor, surf, dirty_area);
pipe->flush(pipe, &surface_priv->fence);