diff options
author | Brian Paul <[email protected]> | 2009-12-31 14:44:40 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-12-31 14:45:15 -0700 |
commit | c0b4fb06b8b570b1999a0849797d3cb77f6ee5cd (patch) | |
tree | c28f3ec883a7b9aaa7ed92fcb5f7f21bb9941b3f | |
parent | 25024d948298a9f3f3210a0b91486f79a3917b0f (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.
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 8 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_defines.h | 9 |
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 |