X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_setup.h;h=dbfc1bf8d4cab1808f29486b10c5055ec47aeba0;hb=ae69f9fbf0a1aab7186e5b644085a5fe5aea99af;hp=66a7f29f1e7da5ed34b64d44cc4a404b11a16582;hpb=9fca3e065b9ab5ef1389a76934bc24ed2b287a76;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_setup.h b/src/gallium/drivers/llvmpipe/lp_setup.h index 66a7f29f1e7..dbfc1bf8d4c 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.h +++ b/src/gallium/drivers/llvmpipe/lp_setup.h @@ -28,6 +28,10 @@ #define LP_SETUP_H #include "pipe/p_compiler.h" +#include "lp_jit.h" + +struct draw_context; +struct vertex_info; enum lp_interp { LP_INTERP_CONSTANT, @@ -57,78 +61,85 @@ struct pipe_framebuffer_state; struct lp_fragment_shader; struct lp_jit_context; -struct setup_context * -lp_setup_create( struct pipe_screen *screen ); +struct lp_setup_context * +lp_setup_create( struct pipe_context *pipe, + struct draw_context *draw ); void -lp_setup_clear(struct setup_context *setup, +lp_setup_clear(struct lp_setup_context *setup, const float *clear_color, double clear_depth, unsigned clear_stencil, unsigned flags); -void -lp_setup_tri(struct setup_context *setup, - const float (*v0)[4], - const float (*v1)[4], - const float (*v2)[4]); +struct pipe_fence_handle * +lp_setup_fence( struct lp_setup_context *setup ); -void -lp_setup_line(struct setup_context *setup, - const float (*v0)[4], - const float (*v1)[4]); void -lp_setup_point( struct setup_context *setup, - const float (*v0)[4] ); - - -void -lp_setup_flush( struct setup_context *setup, +lp_setup_flush( struct lp_setup_context *setup, unsigned flags ); void -lp_setup_bind_framebuffer( struct setup_context *setup, +lp_setup_bind_framebuffer( struct lp_setup_context *setup, const struct pipe_framebuffer_state *fb ); void -lp_setup_set_triangle_state( struct setup_context *setup, +lp_setup_set_triangle_state( struct lp_setup_context *setup, unsigned cullmode, - boolean front_is_ccw ); + boolean front_is_ccw, + boolean scissor, + boolean gl_rasterization_rules ); void -lp_setup_set_fs_inputs( struct setup_context *setup, +lp_setup_set_fs_inputs( struct lp_setup_context *setup, const struct lp_shader_input *interp, unsigned nr ); void -lp_setup_set_fs( struct setup_context *setup, - struct lp_fragment_shader *fs ); +lp_setup_set_fs_functions( struct lp_setup_context *setup, + lp_jit_frag_func jit_function0, + lp_jit_frag_func jit_function1, + boolean opaque ); void -lp_setup_set_fs_constants(struct setup_context *setup, +lp_setup_set_fs_constants(struct lp_setup_context *setup, struct pipe_buffer *buffer); void -lp_setup_set_alpha_ref_value( struct setup_context *setup, +lp_setup_set_alpha_ref_value( struct lp_setup_context *setup, float alpha_ref_value ); void -lp_setup_set_blend_color( struct setup_context *setup, +lp_setup_set_stencil_ref_values( struct lp_setup_context *setup, + const ubyte refs[2] ); + +void +lp_setup_set_blend_color( struct lp_setup_context *setup, const struct pipe_blend_color *blend_color ); void -lp_setup_set_sampler_textures( struct setup_context *setup, - unsigned num, struct pipe_texture **texture); +lp_setup_set_scissor( struct lp_setup_context *setup, + const struct pipe_scissor_state *scissor ); + +void +lp_setup_set_fragment_sampler_views(struct lp_setup_context *setup, + unsigned num, + struct pipe_sampler_view **views); -boolean -lp_setup_is_texture_referenced( struct setup_context *setup, +unsigned +lp_setup_is_texture_referenced( const struct lp_setup_context *setup, const struct pipe_texture *texture ); +void +lp_setup_set_flatshade_first( struct lp_setup_context *setup, + boolean flatshade_first ); + +void +lp_setup_set_vertex_info( struct lp_setup_context *setup, + struct vertex_info *info ); -void -lp_setup_destroy( struct setup_context *setup ); #endif