gallium/tgsi_from_mesa: Add 'extern "C"' to be able to include from C++
[mesa.git] / src / gallium / auxiliary / rbug / rbug_context.h
index 9f1726d64d466be61119ea40a422ec59ecc86d90..573507804fa3ff790561ab0b7275a93eb0ec9c4e 100644 (file)
 #ifndef _RBUG_PROTO_CONTEXT_H_
 #define _RBUG_PROTO_CONTEXT_H_
 
-#include "rbug/rbug_proto.h"
-#include "rbug/rbug_core.h"
+#include "rbug_proto.h"
+#include "rbug_core.h"
 
 typedef enum
 {
        RBUG_BLOCK_BEFORE = 1,
        RBUG_BLOCK_AFTER = 2,
+       RBUG_BLOCK_RULE = 4,
+       RBUG_BLOCK_MASK = 7
 } rbug_block_t;
 
 struct rbug_proto_context_list
@@ -79,11 +81,21 @@ struct rbug_proto_context_draw_unblock
        rbug_block_t unblock;
 };
 
+struct rbug_proto_context_draw_rule
+{
+       struct rbug_header header;
+       rbug_context_t context;
+       rbug_shader_t vertex;
+       rbug_shader_t fragment;
+       rbug_texture_t texture;
+       rbug_texture_t surface;
+       rbug_block_t block;
+};
+
 struct rbug_proto_context_flush
 {
        struct rbug_header header;
        rbug_context_t context;
-       int32_t flags;
 };
 
 struct rbug_proto_context_list_reply
@@ -100,6 +112,8 @@ struct rbug_proto_context_info_reply
        uint32_t serial;
        rbug_shader_t vertex;
        rbug_shader_t fragment;
+       rbug_texture_t *texs;
+       uint32_t texs_len;
        rbug_texture_t *cbufs;
        uint32_t cbufs_len;
        rbug_texture_t zsbuf;
@@ -136,9 +150,17 @@ int rbug_send_context_draw_unblock(struct rbug_connection *__con,
                                    rbug_block_t unblock,
                                    uint32_t *__serial);
 
+int rbug_send_context_draw_rule(struct rbug_connection *__con,
+                                rbug_context_t context,
+                                rbug_shader_t vertex,
+                                rbug_shader_t fragment,
+                                rbug_texture_t texture,
+                                rbug_texture_t surface,
+                                rbug_block_t block,
+                                uint32_t *__serial);
+
 int rbug_send_context_flush(struct rbug_connection *__con,
                             rbug_context_t context,
-                            int32_t flags,
                             uint32_t *__serial);
 
 int rbug_send_context_list_reply(struct rbug_connection *__con,
@@ -151,6 +173,8 @@ int rbug_send_context_info_reply(struct rbug_connection *__con,
                                  uint32_t serial,
                                  rbug_shader_t vertex,
                                  rbug_shader_t fragment,
+                                 rbug_texture_t *texs,
+                                 uint32_t texs_len,
                                  rbug_texture_t *cbufs,
                                  uint32_t cbufs_len,
                                  rbug_texture_t zsbuf,
@@ -173,6 +197,8 @@ struct rbug_proto_context_draw_step * rbug_demarshal_context_draw_step(struct rb
 
 struct rbug_proto_context_draw_unblock * rbug_demarshal_context_draw_unblock(struct rbug_proto_header *header);
 
+struct rbug_proto_context_draw_rule * rbug_demarshal_context_draw_rule(struct rbug_proto_header *header);
+
 struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header);
 
 struct rbug_proto_context_list_reply * rbug_demarshal_context_list_reply(struct rbug_proto_header *header);