gallium: add bits for clipping points as tris (d3d-style)
[mesa.git] / src / gallium / auxiliary / draw / draw_context.h
index 94fac880c68c8975d0d7fbfab1891aebb9171672..65716c93cccf83cb4266b6fcaac86b8f052053a5 100644 (file)
@@ -71,8 +71,10 @@ void draw_destroy( struct draw_context *draw );
 
 void draw_flush(struct draw_context *draw);
 
-void draw_set_viewport_state( struct draw_context *draw,
-                              const struct pipe_viewport_state *viewport );
+void draw_set_viewport_states( struct draw_context *draw,
+                               unsigned start_slot,
+                               unsigned num_viewports,
+                               const struct pipe_viewport_state *viewports );
 
 void draw_set_clip_state( struct draw_context *pipe,
                           const struct pipe_clip_state *clip );
@@ -109,7 +111,7 @@ void draw_enable_line_stipple(struct draw_context *draw, boolean enable);
 
 void draw_enable_point_sprites(struct draw_context *draw, boolean enable);
 
-void draw_set_mrd(struct draw_context *draw, double mrd);
+void draw_set_zs_format(struct draw_context *draw, enum pipe_format format);
 
 boolean
 draw_install_aaline_stage(struct draw_context *draw, struct pipe_context *pipe);
@@ -124,13 +126,24 @@ draw_install_pstipple_stage(struct draw_context *draw, struct pipe_context *pipe
 struct tgsi_shader_info *
 draw_get_shader_info(const struct draw_context *draw);
 
+void
+draw_prepare_shader_outputs(struct draw_context *draw);
+
 int
 draw_find_shader_output(const struct draw_context *draw,
                         uint semantic_name, uint semantic_index);
 
+boolean
+draw_will_inject_frontface(const struct draw_context *draw);
+
 uint
 draw_num_shader_outputs(const struct draw_context *draw);
 
+uint
+draw_total_vs_outputs(const struct draw_context *draw);
+
+uint
+draw_total_gs_outputs(const struct draw_context *draw);
 
 void
 draw_texture_sampler(struct draw_context *draw,
@@ -212,10 +225,12 @@ void draw_set_vertex_elements(struct draw_context *draw,
                               const struct pipe_vertex_element *elements);
 
 void draw_set_indexes(struct draw_context *draw,
-                      const void *elements, unsigned elem_size);
+                      const void *elements, unsigned elem_size,
+                      unsigned available_space);
 
 void draw_set_mapped_vertex_buffer(struct draw_context *draw,
-                                   unsigned attr, const void *buffer);
+                                   unsigned attr, const void *buffer,
+                                   size_t size);
 
 void
 draw_set_mapped_constant_buffer(struct draw_context *draw,
@@ -237,17 +252,6 @@ draw_set_mapped_so_targets(struct draw_context *draw,
 void draw_vbo(struct draw_context *draw,
               const struct pipe_draw_info *info);
 
-void draw_arrays(struct draw_context *draw, unsigned prim,
-                unsigned start, unsigned count);
-
-void
-draw_arrays_instanced(struct draw_context *draw,
-                      unsigned mode,
-                      unsigned start,
-                      unsigned count,
-                      unsigned startInstance,
-                      unsigned instanceCount);
-
 
 /*******************************************************************************
  * Driver backend interface 
@@ -259,7 +263,8 @@ void draw_set_render( struct draw_context *draw,
 void draw_set_driver_clipping( struct draw_context *draw,
                                boolean bypass_clip_xy,
                                boolean bypass_clip_z,
-                               boolean guard_band_xy);
+                               boolean guard_band_xy,
+                               boolean bypass_clip_points);
 
 void draw_set_force_passthrough( struct draw_context *draw, 
                                  boolean enable );