summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-12-31 14:44:40 -0700
committerBrian Paul <[email protected]>2009-12-31 14:45:15 -0700
commitc0b4fb06b8b570b1999a0849797d3cb77f6ee5cd (patch)
treec28f3ec883a7b9aaa7ed92fcb5f7f21bb9941b3f /src
parent25024d948298a9f3f3210a0b91486f79a3917b0f (diff)
gallium: pipe_context::render_condition() and mode flags
For conditional rendering predicated on results of an occlusion query. If this driver function is NULL, conditional rendering is not supported by the driver.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/include/pipe/p_context.h8
-rw-r--r--src/gallium/include/pipe/p_defines.h9
2 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h
index 6c06fb90270..60fa9cef824 100644
--- a/src/gallium/include/pipe/p_context.h
+++ b/src/gallium/include/pipe/p_context.h
@@ -84,6 +84,14 @@ struct pipe_context {
unsigned count);
/*@}*/
+ /**
+ * Predicate subsequent rendering on occlusion query result
+ * \param query the query predicate, or NULL if no predicate
+ * \param mode one of PIPE_COND_RENDER_x
+ */
+ void (*render_condition)( struct pipe_context *pipe,
+ struct pipe_query *query,
+ uint mode );
/**
* Query objects
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index 2cda408fecc..c3b1e634ffc 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -355,6 +355,15 @@ enum pipe_transfer_usage {
/**
+ * Conditional rendering modes
+ */
+#define PIPE_RENDER_COND_WAIT 0
+#define PIPE_RENDER_COND_NO_WAIT 1
+#define PIPE_RENDER_COND_BY_REGION_WAIT 2
+#define PIPE_RENDER_COND_BY_REGION_NO_WAIT 3
+
+
+/**
* Point sprite coord modes
*/
#define PIPE_SPRITE_COORD_NONE 0