gallium: adapt drivers to pipe_constant_buffer removal
[mesa.git] / src / gallium / drivers / llvmpipe / lp_state.h
index 83dace30ce4992638cebbb6a9115f97e2f9c55ae..131e3621e94e4d31445dbb0ff18b3e4a75915cf8 100644 (file)
@@ -35,6 +35,8 @@
 
 #include "pipe/p_state.h"
 #include "tgsi/tgsi_scan.h"
+#include "lp_jit.h"
+#include "lp_bld_sample.h" /* for struct lp_sampler_static_state */
 
 
 #define LP_NEW_VIEWPORT      0x1
 
 struct tgsi_sampler;
 struct vertex_info;
-
-
-typedef void
-(*lp_shader_fs_func)(uint32_t x,
-                     uint32_t y,
-                     const void *a0,
-                     const void *dadx,
-                     const void *dady,
-                     const void *consts,
-                     uint32_t *mask,
-                     void *color,
-                     void *depth,
-                     struct tgsi_sampler **samplers);
-
+struct pipe_context;
+struct llvmpipe_context;
 
 struct lp_fragment_shader;
 
 
 struct lp_fragment_shader_variant_key
 {
+   enum pipe_format zsbuf_format;
    struct pipe_depth_state depth;
    struct pipe_alpha_state alpha;
    struct pipe_blend_state blend;
+
+   struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS];
 };
 
 
@@ -90,7 +83,7 @@ struct lp_fragment_shader_variant
 
    LLVMValueRef function;
 
-   lp_shader_fs_func jit_function;
+   lp_jit_frag_func jit_function;
 
    struct lp_fragment_shader_variant *next;
 };
@@ -120,23 +113,6 @@ struct lp_vertex_shader {
 };
 
 
-typedef void
-(*lp_blend_func)(const uint8_t *mask,
-                 const uint8_t *src,
-                 const uint8_t *con,
-                 uint8_t *dst);
-
-
-struct lp_blend_state
-{
-   struct pipe_blend_state base;
-
-   LLVMValueRef function;
-
-   lp_blend_func jit_function;
-};
-
-
 
 void *
 llvmpipe_create_blend_state(struct pipe_context *,
@@ -150,6 +126,10 @@ void *
 llvmpipe_create_sampler_state(struct pipe_context *,
                               const struct pipe_sampler_state *);
 void llvmpipe_bind_sampler_states(struct pipe_context *, unsigned, void **);
+void
+llvmpipe_bind_vertex_sampler_states(struct pipe_context *,
+                                    unsigned num_samplers,
+                                    void **samplers);
 void llvmpipe_delete_sampler_state(struct pipe_context *, void *);
 
 void *
@@ -175,7 +155,7 @@ void llvmpipe_set_clip_state( struct pipe_context *,
 
 void llvmpipe_set_constant_buffer(struct pipe_context *,
                                   uint shader, uint index,
-                                  const struct pipe_constant_buffer *buf);
+                                  const struct pipe_buffer *buf);
 
 void *llvmpipe_create_fs_state(struct pipe_context *,
                                const struct pipe_shader_state *);
@@ -196,6 +176,11 @@ void llvmpipe_set_sampler_textures( struct pipe_context *,
                                     unsigned num,
                                     struct pipe_texture ** );
 
+void
+llvmpipe_set_vertex_sampler_textures(struct pipe_context *,
+                                     unsigned num_textures,
+                                     struct pipe_texture **);
+
 void llvmpipe_set_viewport_state( struct pipe_context *,
                                   const struct pipe_viewport_state * );
 
@@ -227,10 +212,6 @@ llvmpipe_draw_range_elements(struct pipe_context *pipe,
                              unsigned max_index,
                              unsigned mode, unsigned start, unsigned count);
 
-void
-llvmpipe_set_edgeflags(struct pipe_context *pipe, const unsigned *edgeflags);
-
-
 void
 llvmpipe_map_transfers(struct llvmpipe_context *lp);