X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_setup.h;h=55fbd9be8b829505cddae60f786f57c2adc9b7aa;hb=1d35f77228ad540a551a8e09e062b764a6e31f5e;hp=89c43da04605ec819105803df97fc84e545bae64;hpb=0c309bb494b6ee1c403442d1207743f749f95b6e;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_setup.h b/src/gallium/drivers/llvmpipe/lp_setup.h index 89c43da0460..55fbd9be8b8 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.h +++ b/src/gallium/drivers/llvmpipe/lp_setup.h @@ -27,27 +27,131 @@ #ifndef LP_SETUP_H #define LP_SETUP_H -struct setup_context; -struct llvmpipe_context; +#include "pipe/p_compiler.h" +#include "lp_jit.h" + +struct draw_context; +struct vertex_info; + + +struct pipe_resource; +struct pipe_query; +struct pipe_surface; +struct pipe_blend_color; +struct pipe_screen; +struct pipe_framebuffer_state; +struct lp_fragment_shader_variant; +struct lp_jit_context; +struct llvmpipe_query; +struct pipe_fence_handle; +struct lp_setup_variant; +struct lp_setup_context; + +void lp_setup_reset( struct lp_setup_context *setup ); + +struct lp_setup_context * +lp_setup_create( struct pipe_context *pipe, + struct draw_context *draw ); + +void +lp_setup_clear(struct lp_setup_context *setup, + const float *clear_color, + double clear_depth, + unsigned clear_stencil, + unsigned flags); + + + +void +lp_setup_flush( struct lp_setup_context *setup, + struct pipe_fence_handle **fence, + const char *reason); + + +void +lp_setup_bind_framebuffer( struct lp_setup_context *setup, + const struct pipe_framebuffer_state *fb ); + +void +lp_setup_set_triangle_state( struct lp_setup_context *setup, + unsigned cullmode, + boolean front_is_ccw, + boolean scissor, + boolean gl_rasterization_rules ); void -llvmpipe_setup_tri( struct setup_context *setup, - const float (*v0)[4], - const float (*v1)[4], - const float (*v2)[4] ); +lp_setup_set_line_state( struct lp_setup_context *setup, + float line_width); + +void +lp_setup_set_point_state( struct lp_setup_context *setup, + float point_size, + boolean point_size_per_vertex, + uint sprite_coord_enable, + uint sprite_coord_origin); + +void +lp_setup_set_setup_variant( struct lp_setup_context *setup, + const struct lp_setup_variant *variant ); + +void +lp_setup_set_fs_variant( struct lp_setup_context *setup, + struct lp_fragment_shader_variant *variant ); + +void +lp_setup_set_fs_constants(struct lp_setup_context *setup, + unsigned num, + struct pipe_resource **buffers); + + +void +lp_setup_set_alpha_ref_value( struct lp_setup_context *setup, + float alpha_ref_value ); void -llvmpipe_setup_line(struct setup_context *setup, - const float (*v0)[4], - const float (*v1)[4]); +lp_setup_set_stencil_ref_values( struct lp_setup_context *setup, + const ubyte refs[2] ); void -llvmpipe_setup_point( struct setup_context *setup, - const float (*v0)[4] ); +lp_setup_set_blend_color( struct lp_setup_context *setup, + const struct pipe_blend_color *blend_color ); +void +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); + +void +lp_setup_set_fragment_sampler_state(struct lp_setup_context *setup, + unsigned num, + struct pipe_sampler_state **samplers); -struct setup_context *llvmpipe_setup_create_context( struct llvmpipe_context *llvmpipe ); -void llvmpipe_setup_prepare( struct setup_context *setup ); -void llvmpipe_setup_destroy_context( struct setup_context *setup ); +unsigned +lp_setup_is_resource_referenced( const struct lp_setup_context *setup, + const struct pipe_resource *texture ); + +void +lp_setup_set_flatshade_first( struct lp_setup_context *setup, + boolean flatshade_first ); + +void +lp_setup_set_rasterizer_discard( struct lp_setup_context *setup, + boolean rasterizer_discard ); + +void +lp_setup_set_vertex_info( struct lp_setup_context *setup, + struct vertex_info *info ); + +void +lp_setup_begin_query(struct lp_setup_context *setup, + struct llvmpipe_query *pq); + +void +lp_setup_end_query(struct lp_setup_context *setup, + struct llvmpipe_query *pq); #endif