Mesa (master): gallium: pipe_context::render_condition() and mode flags

Brian Paul brianp at kemper.freedesktop.org
Mon Jan 4 18:50:03 UTC 2010


Module: Mesa
Branch: master
Commit: c0b4fb06b8b570b1999a0849797d3cb77f6ee5cd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0b4fb06b8b570b1999a0849797d3cb77f6ee5cd

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Dec 31 14:44:40 2009 -0700

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.

---

 src/gallium/include/pipe/p_context.h |    8 ++++++++
 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 6c06fb9..60fa9ce 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 2cda408..c3b1e63 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




More information about the mesa-commit mailing list