19ad66d9c61c9d4f7e41d948c585f80ff281931f
[mesa.git] / src / gallium / auxiliary / vl / vl_compositor.h
1 #ifndef vl_compositor_h
2 #define vl_compositor_h
3
4 #include <pipe/p_compiler.h>
5 #include <pipe/p_state.h>
6 #include <pipe/p_video_state.h>
7
8 struct pipe_context;
9 struct pipe_texture;
10
11 struct vl_compositor
12 {
13 struct pipe_context *pipe;
14
15 struct pipe_framebuffer_state fb_state;
16 void *sampler;
17 void *vertex_shader;
18 void *fragment_shader;
19 struct pipe_viewport_state viewport;
20 struct pipe_vertex_buffer vertex_bufs[2];
21 struct pipe_vertex_element vertex_elems[2];
22 struct pipe_constant_buffer vs_const_buf, fs_const_buf;
23 };
24
25 bool vl_compositor_init(struct vl_compositor *compositor, struct pipe_context *pipe);
26
27 void vl_compositor_cleanup(struct vl_compositor *compositor);
28
29 void vl_compositor_render(struct vl_compositor *compositor,
30 /*struct pipe_texture *backround,
31 struct pipe_video_rect *backround_area,*/
32 struct pipe_texture *src_surface,
33 enum pipe_mpeg12_picture_type picture_type,
34 /*unsigned num_past_surfaces,
35 struct pipe_texture *past_surfaces,
36 unsigned num_future_surfaces,
37 struct pipe_texture *future_surfaces,*/
38 struct pipe_video_rect *src_area,
39 struct pipe_texture *dst_surface,
40 struct pipe_video_rect *dst_area,
41 /*unsigned num_layers,
42 struct pipe_texture *layers,
43 struct pipe_video_rect *layer_src_areas,
44 struct pipe_video_rect *layer_dst_areas,*/
45 struct pipe_fence_handle **fence);
46
47 #endif /* vl_compositor_h */