r600g/compute Improve debugging output
[mesa.git] / src / gallium / drivers / softpipe / sp_state_rasterizer.c
index 87b72196838f6865df06890f0ca3dd6639160b2d..3cd4acd743232cbcad4b5bc88042e80d4bfab850 100644 (file)
 
 
 
-void *
+static void *
 softpipe_create_rasterizer_state(struct pipe_context *pipe,
                                  const struct pipe_rasterizer_state *rast)
 {
    return mem_dup(rast, sizeof(*rast));
 }
 
-void softpipe_bind_rasterizer_state(struct pipe_context *pipe,
-                                    void *setup)
+
+static void
+softpipe_bind_rasterizer_state(struct pipe_context *pipe,
+                               void *rasterizer)
 {
    struct softpipe_context *softpipe = softpipe_context(pipe);
 
+   if (softpipe->rasterizer == rasterizer)
+      return;
+
    /* pass-through to draw module */
-   draw_set_rasterizer_state(softpipe->draw, setup);
+   draw_set_rasterizer_state(softpipe->draw, rasterizer, rasterizer);
 
-   softpipe->rasterizer = (struct pipe_rasterizer_state *)setup;
+   softpipe->rasterizer = rasterizer;
 
    softpipe->dirty |= SP_NEW_RASTERIZER;
 }
 
-void softpipe_delete_rasterizer_state(struct pipe_context *pipe,
-                                      void *rasterizer)
+
+static void
+softpipe_delete_rasterizer_state(struct pipe_context *pipe,
+                                 void *rasterizer)
 {
    FREE( rasterizer );
 }
 
 
+void
+softpipe_init_rasterizer_funcs(struct pipe_context *pipe)
+{
+   pipe->create_rasterizer_state = softpipe_create_rasterizer_state;
+   pipe->bind_rasterizer_state   = softpipe_bind_rasterizer_state;
+   pipe->delete_rasterizer_state = softpipe_delete_rasterizer_state;
+}