diff options
author | Zack Rusin <[email protected]> | 2007-10-03 08:47:36 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2007-10-03 08:47:36 -0400 |
commit | 51345cb3c4d85a9e88ac35b59e938b0692df6205 (patch) | |
tree | 3d0ce611cb6fc43f4672426f9e459369c67ceb1c | |
parent | 4b6cc36b2b4892c3ce0862789c3b294c52356805 (diff) |
Make softpipe behave more like a real driver by always allocating something
in the state functions.
-rw-r--r-- | src/mesa/pipe/softpipe/sp_state_blend.c | 23 | ||||
-rw-r--r-- | src/mesa/pipe/softpipe/sp_state_fs.c | 5 | ||||
-rw-r--r-- | src/mesa/pipe/softpipe/sp_state_rasterizer.c | 7 | ||||
-rw-r--r-- | src/mesa/pipe/softpipe/sp_state_sampler.c | 6 |
4 files changed, 27 insertions, 14 deletions
diff --git a/src/mesa/pipe/softpipe/sp_state_blend.c b/src/mesa/pipe/softpipe/sp_state_blend.c index cb0921f687b..6376c3c61cf 100644 --- a/src/mesa/pipe/softpipe/sp_state_blend.c +++ b/src/mesa/pipe/softpipe/sp_state_blend.c @@ -34,9 +34,9 @@ void * softpipe_create_blend_state(struct pipe_context *pipe, const struct pipe_blend_state *blend) { - /* means that we just want pipe_blend_state and don't have - * anything specific */ - return 0; + struct pipe_blend_state *state = malloc(sizeof(struct pipe_blend_state)); + memcpy(state, blend, sizeof(struct pipe_blend_state)); + return state; } void softpipe_bind_blend_state( struct pipe_context *pipe, @@ -50,9 +50,9 @@ void softpipe_bind_blend_state( struct pipe_context *pipe, } void softpipe_delete_blend_state(struct pipe_context *pipe, - void *blend ) + void *blend) { - /* do nothing */ + free(blend); } @@ -75,7 +75,9 @@ void * softpipe_create_alpha_test_state(struct pipe_context *pipe, const struct pipe_alpha_test_state *alpha) { - return 0; + struct pipe_alpha_test_state *state = malloc(sizeof(struct pipe_alpha_test_state)); + memcpy(state, alpha, sizeof(struct pipe_alpha_test_state)); + return state; } void @@ -93,14 +95,17 @@ void softpipe_delete_alpha_test_state(struct pipe_context *pipe, void *alpha) { - /* do nothing */ + free(alpha); } void * softpipe_create_depth_stencil_state(struct pipe_context *pipe, const struct pipe_depth_stencil_state *depth_stencil) { - return 0; + struct pipe_depth_stencil_state *state = + malloc(sizeof(struct pipe_depth_stencil_state)); + memcpy(state, depth_stencil, sizeof(struct pipe_depth_stencil_state)); + return state; } void @@ -117,5 +122,5 @@ softpipe_bind_depth_stencil_state(struct pipe_context *pipe, void softpipe_delete_depth_stencil_state(struct pipe_context *pipe, void *depth) { - /* do nothing */ + free(depth); } diff --git a/src/mesa/pipe/softpipe/sp_state_fs.c b/src/mesa/pipe/softpipe/sp_state_fs.c index f1bec2c73ac..390340fa8dc 100644 --- a/src/mesa/pipe/softpipe/sp_state_fs.c +++ b/src/mesa/pipe/softpipe/sp_state_fs.c @@ -40,7 +40,9 @@ void * softpipe_create_fs_state(struct pipe_context *pipe, * that now. */ - return 0; + struct pipe_shader_state *state = malloc(sizeof(struct pipe_shader_state)); + memcpy(state, templ, sizeof(struct pipe_shader_state)); + return state; } void softpipe_bind_fs_state(struct pipe_context *pipe, void *fs) @@ -55,6 +57,7 @@ void softpipe_bind_fs_state(struct pipe_context *pipe, void *fs) void softpipe_delete_fs_state(struct pipe_context *pipe, void *shader) { + free(shader); } diff --git a/src/mesa/pipe/softpipe/sp_state_rasterizer.c b/src/mesa/pipe/softpipe/sp_state_rasterizer.c index d7845cef826..076ea66d9e8 100644 --- a/src/mesa/pipe/softpipe/sp_state_rasterizer.c +++ b/src/mesa/pipe/softpipe/sp_state_rasterizer.c @@ -36,7 +36,10 @@ void * softpipe_create_rasterizer_state(struct pipe_context *pipe, const struct pipe_rasterizer_state *setup) { - return 0; + struct pipe_rasterizer_state *state = + malloc(sizeof(struct pipe_rasterizer_state)); + memcpy(state, setup, sizeof(struct pipe_rasterizer_state)); + return state; } void softpipe_bind_rasterizer_state(struct pipe_context *pipe, @@ -55,7 +58,7 @@ void softpipe_bind_rasterizer_state(struct pipe_context *pipe, void softpipe_delete_rasterizer_state(struct pipe_context *pipe, void *rasterizer) { - /* do nothing */ + free(rasterizer); } diff --git a/src/mesa/pipe/softpipe/sp_state_sampler.c b/src/mesa/pipe/softpipe/sp_state_sampler.c index ad98375735b..4084e9163f3 100644 --- a/src/mesa/pipe/softpipe/sp_state_sampler.c +++ b/src/mesa/pipe/softpipe/sp_state_sampler.c @@ -36,7 +36,9 @@ void * softpipe_create_sampler_state(struct pipe_context *pipe, const struct pipe_sampler_state *sampler) { - return 0; + struct pipe_sampler_state *state = malloc(sizeof(struct pipe_sampler_state)); + memcpy(state, sampler, sizeof(struct pipe_sampler_state)); + return state; } void @@ -56,7 +58,7 @@ void softpipe_delete_sampler_state(struct pipe_context *pipe, void *sampler) { - /* do nothing */ + free(sampler); } |