diff options
author | José Fonseca <[email protected]> | 2009-08-19 20:42:50 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-08-29 09:21:37 +0100 |
commit | 9ae47069b4a2b67e381b02d805f1ca74f31ea7b8 (patch) | |
tree | 69928d0be32cc2efe339791ed815920365ccfd9d /src/gallium/drivers/llvmpipe/lp_state.h | |
parent | b5e397c3693fbae6b2c91c602454d9a70651c9c4 (diff) |
llvmpipe: Code generate alpha testing and append to generated fragment shader.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state.h')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index f8b3793a595..db21096f215 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -70,6 +70,28 @@ typedef void void *depth, struct tgsi_sampler **samplers); + +struct lp_fragment_shader; + + +/** + * Subclass of pipe_shader_state (though it doesn't really need to be). + * + * This is starting to look an awful lot like a quad pipeline stage... + */ +struct lp_fragment_shader_variant +{ + struct lp_fragment_shader *shader; + struct pipe_alpha_state alpha; + + LLVMValueRef function; + + lp_shader_fs_func jit_function; + + struct lp_fragment_shader_variant *next; +}; + + /** * Subclass of pipe_shader_state (though it doesn't really need to be). * @@ -83,9 +105,9 @@ struct lp_fragment_shader struct llvmpipe_screen *screen; - LLVMValueRef function; + struct lp_fragment_shader_variant *variants; - lp_shader_fs_func jit_function; + struct lp_fragment_shader_variant *current; }; @@ -183,6 +205,7 @@ void llvmpipe_set_vertex_buffers(struct pipe_context *, unsigned count, const struct pipe_vertex_buffer *); +void llvmpipe_update_fs(struct llvmpipe_context *lp); void llvmpipe_update_derived( struct llvmpipe_context *llvmpipe ); |