gallium: add PIPE_CAP_MAX_COMBINED_HW_ATOMIC_COUNTER{S,_BUFFERS}
[mesa.git] / src / mesa / state_tracker / st_draw.h
index 361fe7f9125a1f468a3b2ab6e577f0f8aeaec914..5b897bda1181fef867845da2721c80f5da0037f4 100644 (file)
 #ifndef ST_DRAW_H
 #define ST_DRAW_H
 
-#include "main/compiler.h"
 #include "main/glheader.h"
 
 struct _mesa_index_buffer;
 struct _mesa_prim;
-struct gl_client_array;
 struct gl_context;
 struct st_context;
 
-void st_init_draw( struct st_context *st );
+void st_init_draw_functions(struct dd_function_table *functions);
 
 void st_destroy_draw( struct st_context *st );
 
-extern void
-st_draw_vbo(struct gl_context *ctx,
-            const struct _mesa_prim *prims,
-            GLuint nr_prims,
-            const struct _mesa_index_buffer *ib,
-           GLboolean index_bounds_valid,
-            GLuint min_index,
-            GLuint max_index,
-            struct gl_transform_feedback_object *tfb_vertcount,
-            struct gl_buffer_object *indirect);
+struct draw_context *st_get_draw_context(struct st_context *st);
 
 extern void
 st_feedback_draw_vbo(struct gl_context *ctx,
@@ -67,6 +56,7 @@ st_feedback_draw_vbo(struct gl_context *ctx,
                      GLuint min_index,
                      GLuint max_index,
                      struct gl_transform_feedback_object *tfb_vertcount,
+                     unsigned stream,
                      struct gl_buffer_object *indirect);
 
 /**
@@ -76,11 +66,18 @@ st_feedback_draw_vbo(struct gl_context *ctx,
  * This function is basically a cast wrapper to avoid warnings when building
  * in 64-bit mode.
  */
-static INLINE unsigned
+static inline unsigned
 pointer_to_offset(const void *ptr)
 {
    return (unsigned) (((GLsizeiptr) ptr) & 0xffffffffUL);
 }
 
 
+bool
+st_draw_quad(struct st_context *st,
+             float x0, float y0, float x1, float y1, float z,
+             float s0, float t0, float s1, float t1,
+             const float *color,
+             unsigned num_instances);
+
 #endif