summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/p_context.h
diff options
context:
space:
mode:
authorZack Rusin <zack@tungstengraphics.com>2007-09-14 04:08:58 -0400
committerZack Rusin <zack@tungstengraphics.com>2007-09-18 06:31:22 -0400
commit9780327c5d95586a88fce94d7b47342355ead118 (patch)
tree9007ea135504d8fd90b49a391a43fa579b9374b5 /src/mesa/pipe/p_context.h
parentffacb1c12a77d71613e8171e31ffc348959881e4 (diff)
First stab at immutable state objects (create/bind/delete)
We want our state objects to be immutable, handled via the create/bind/delete calls instead of struct propagation. Only implementing the blend state to see how it would look like and work.
Diffstat (limited to 'src/mesa/pipe/p_context.h')
-rw-r--r--src/mesa/pipe/p_context.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mesa/pipe/p_context.h b/src/mesa/pipe/p_context.h
index ec5555c38e..b9af69fc05 100644
--- a/src/mesa/pipe/p_context.h
+++ b/src/mesa/pipe/p_context.h
@@ -31,7 +31,7 @@
#include "p_state.h"
#include "p_compiler.h"
-
+struct pipe_state_cache;
/**
* Software pipeline rendering context. Basically a collection of
* state setting functions, plus VBO drawing entrypoint.
@@ -85,12 +85,16 @@ struct pipe_context {
/*
* State functions
*/
+ const struct pipe_blend_state * (*create_blend_state)(struct pipe_context *,
+ const struct pipe_blend_state *);
+ void (*bind_blend_state)(struct pipe_context *,
+ const struct pipe_blend_state *);
+ void (*delete_blend_state)(struct pipe_context *,
+ const struct pipe_blend_state *);
+
void (*set_alpha_test_state)( struct pipe_context *,
const struct pipe_alpha_test_state * );
- void (*set_blend_state)( struct pipe_context *,
- const struct pipe_blend_state * );
-
void (*set_blend_color)( struct pipe_context *,
const struct pipe_blend_color * );