summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/pipe/draw/draw_context.h10
-rw-r--r--src/mesa/pipe/draw/draw_vertex_shader.c16
-rw-r--r--src/mesa/pipe/i915simple/i915_state.c6
-rw-r--r--src/mesa/pipe/softpipe/sp_state.h2
4 files changed, 16 insertions, 18 deletions
diff --git a/src/mesa/pipe/draw/draw_context.h b/src/mesa/pipe/draw/draw_context.h
index 6dc6e4ce82a..60be3e194df 100644
--- a/src/mesa/pipe/draw/draw_context.h
+++ b/src/mesa/pipe/draw/draw_context.h
@@ -45,6 +45,7 @@ struct vertex_buffer;
struct vertex_info;
struct draw_context;
struct draw_stage;
+struct draw_vertex_shader;
/**
@@ -89,12 +90,13 @@ void draw_set_rasterize_stage( struct draw_context *draw,
struct draw_stage *stage );
-void * draw_create_vertex_shader(struct draw_context *draw,
- const struct pipe_shader_state *shader);
+struct draw_vertex_shader *
+draw_create_vertex_shader(struct draw_context *draw,
+ const struct pipe_shader_state *shader);
void draw_bind_vertex_shader(struct draw_context *draw,
- void *vcso);
+ struct draw_vertex_shader *dvs);
void draw_delete_vertex_shader(struct draw_context *draw,
- void *vcso);
+ struct draw_vertex_shader *dvs);
boolean draw_use_sse(struct draw_context *draw);
diff --git a/src/mesa/pipe/draw/draw_vertex_shader.c b/src/mesa/pipe/draw/draw_vertex_shader.c
index d34d9230187..1fa9af8cec5 100644
--- a/src/mesa/pipe/draw/draw_vertex_shader.c
+++ b/src/mesa/pipe/draw/draw_vertex_shader.c
@@ -227,7 +227,7 @@ void draw_vertex_shader_queue_flush( struct draw_context *draw )
}
-void *
+struct draw_vertex_shader *
draw_create_vertex_shader(struct draw_context *draw,
const struct pipe_shader_state *shader)
{
@@ -263,10 +263,10 @@ draw_create_vertex_shader(struct draw_context *draw,
}
void draw_bind_vertex_shader(struct draw_context *draw,
- void *vcso)
+ struct draw_vertex_shader *dvs)
{
draw_flush(draw);
- draw->vertex_shader = (struct draw_vertex_shader*)(vcso);
+ draw->vertex_shader = dvs;
/* specify the fragment program to interpret/execute */
tgsi_exec_machine_init(&draw->machine,
@@ -276,15 +276,11 @@ void draw_bind_vertex_shader(struct draw_context *draw,
}
void draw_delete_vertex_shader(struct draw_context *draw,
- void *vcso)
+ struct draw_vertex_shader *dvs)
{
- struct draw_vertex_shader *vs;
-
- vs = (struct draw_vertex_shader *) vcso;
-
#if defined(__i386__) || defined(__386__)
- x86_release_func( (struct x86_function *) &vs->sse2_program );
+ x86_release_func( (struct x86_function *) &dvs->sse2_program );
#endif
- FREE( vs );
+ FREE( dvs );
}
diff --git a/src/mesa/pipe/i915simple/i915_state.c b/src/mesa/pipe/i915simple/i915_state.c
index f8332aab378..1190e05699c 100644
--- a/src/mesa/pipe/i915simple/i915_state.c
+++ b/src/mesa/pipe/i915simple/i915_state.c
@@ -438,12 +438,12 @@ i915_create_vs_state(struct pipe_context *pipe,
return draw_create_vertex_shader(i915->draw, templ);
}
-static void i915_bind_vs_state(struct pipe_context *pipe, void *vs)
+static void i915_bind_vs_state(struct pipe_context *pipe, void *shader)
{
struct i915_context *i915 = i915_context(pipe);
/* just pass-through to draw module */
- draw_bind_vertex_shader(i915->draw, vs);
+ draw_bind_vertex_shader(i915->draw, (struct draw_vertex_shader *) shader);
}
static void i915_delete_vs_state(struct pipe_context *pipe, void *shader)
@@ -451,7 +451,7 @@ static void i915_delete_vs_state(struct pipe_context *pipe, void *shader)
struct i915_context *i915 = i915_context(pipe);
/* just pass-through to draw module */
- draw_delete_vertex_shader(i915->draw, shader);
+ draw_delete_vertex_shader(i915->draw, (struct draw_vertex_shader *) shader);
}
static void i915_set_constant_buffer(struct pipe_context *pipe,
diff --git a/src/mesa/pipe/softpipe/sp_state.h b/src/mesa/pipe/softpipe/sp_state.h
index c1f5555a862..bac7b0876f6 100644
--- a/src/mesa/pipe/softpipe/sp_state.h
+++ b/src/mesa/pipe/softpipe/sp_state.h
@@ -75,7 +75,7 @@ struct sp_fragment_shader_state {
/** Subclass of pipe_shader_state */
struct sp_vertex_shader_state {
struct pipe_shader_state shader;
- void *draw_data;
+ struct draw_vertex_shader *draw_data;
};