diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/vl/vl_compositor.c | 60 | ||||
-rw-r--r-- | src/gallium/auxiliary/vl/vl_compositor.h | 12 |
2 files changed, 28 insertions, 44 deletions
diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index 6963a565070..794c8b5b17c 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -885,6 +885,32 @@ draw_layers(struct vl_compositor *c, struct vl_compositor_state *s, struct u_rec } } +static void +set_yuv_layer(struct vl_compositor_state *s, struct vl_compositor *c, unsigned layer, + struct pipe_video_buffer *buffer, struct u_rect *src_rect, + struct u_rect *dst_rect, bool y) +{ + struct pipe_sampler_view **sampler_views; + unsigned i; + + assert(s && c && buffer); + + assert(layer < VL_COMPOSITOR_MAX_LAYERS); + + s->used_layers |= 1 << layer; + sampler_views = buffer->get_sampler_view_components(buffer); + for (i = 0; i < 3; ++i) { + s->layers[layer].samplers[i] = c->sampler_linear; + pipe_sampler_view_reference(&s->layers[layer].sampler_views[i], sampler_views[i]); + } + + calc_src_and_dst(&s->layers[layer], buffer->width, buffer->height, + src_rect ? *src_rect : default_rect(&s->layers[layer]), + dst_rect ? *dst_rect : default_rect(&s->layers[layer])); + + s->layers[layer].fs = (y) ? c->fs_weave_yuv.y : c->fs_weave_yuv.uv; +} + void vl_compositor_reset_dirty_area(struct u_rect *dirty) { @@ -1143,36 +1169,6 @@ vl_compositor_set_layer_rotation(struct vl_compositor_state *s, } void -vl_compositor_set_yuv_layer(struct vl_compositor_state *s, - struct vl_compositor *c, - unsigned layer, - struct pipe_video_buffer *buffer, - struct u_rect *src_rect, - struct u_rect *dst_rect, - bool y) -{ - struct pipe_sampler_view **sampler_views; - unsigned i; - - assert(s && c && buffer); - - assert(layer < VL_COMPOSITOR_MAX_LAYERS); - - s->used_layers |= 1 << layer; - sampler_views = buffer->get_sampler_view_components(buffer); - for (i = 0; i < 3; ++i) { - s->layers[layer].samplers[i] = c->sampler_linear; - pipe_sampler_view_reference(&s->layers[layer].sampler_views[i], sampler_views[i]); - } - - calc_src_and_dst(&s->layers[layer], buffer->width, buffer->height, - src_rect ? *src_rect : default_rect(&s->layers[layer]), - dst_rect ? *dst_rect : default_rect(&s->layers[layer])); - - s->layers[layer].fs = (y) ? c->fs_weave_yuv.y : c->fs_weave_yuv.uv; -} - -void vl_compositor_render(struct vl_compositor_state *s, struct vl_compositor *c, struct pipe_surface *dst_surface, @@ -1232,14 +1228,14 @@ vl_compositor_yuv_deint(struct vl_compositor_state *s, dst_rect.y0 = 0; dst_rect.y1 = src->height; - vl_compositor_set_yuv_layer(s, c, 0, src, NULL, NULL, true); + set_yuv_layer(s, c, 0, src, NULL, NULL, true); vl_compositor_set_layer_dst_area(s, 0, &dst_rect); vl_compositor_render(s, c, dst_surfaces[0], NULL, false); dst_rect.x1 /= 2; dst_rect.y1 /= 2; - vl_compositor_set_yuv_layer(s, c, 0, src, NULL, NULL, false); + set_yuv_layer(s, c, 0, src, NULL, NULL, false); vl_compositor_set_layer_dst_area(s, 0, &dst_rect); vl_compositor_render(s, c, dst_surfaces[1], NULL, false); diff --git a/src/gallium/auxiliary/vl/vl_compositor.h b/src/gallium/auxiliary/vl/vl_compositor.h index 88a54efdb82..bae856e6c3f 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.h +++ b/src/gallium/auxiliary/vl/vl_compositor.h @@ -240,18 +240,6 @@ vl_compositor_set_layer_rotation(struct vl_compositor_state *state, unsigned layer, enum vl_compositor_rotation rotate); -/** - * set a layer of y or uv to render - */ -void -vl_compositor_set_yuv_layer(struct vl_compositor_state *s, - struct vl_compositor *c, - unsigned layer, - struct pipe_video_buffer *buffer, - struct u_rect *src_rect, - struct u_rect *dst_rect, - bool y); - /*@}*/ /** |