return __ret;
}
-int rbug_send_context_flush(struct rbug_connection *__con,
- rbug_context_t context,
- int32_t flags,
- uint32_t *__serial)
-{
- uint32_t __len = 0;
- uint32_t __pos = 0;
- uint8_t *__data = NULL;
- int __ret = 0;
-
- LEN(8); /* header */
- LEN(8); /* context */
- LEN(4); /* flags */
-
- /* align */
- PAD(__len, 8);
-
- __data = (uint8_t*)MALLOC(__len);
- if (!__data)
- return -ENOMEM;
-
- WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_FLUSH));
- WRITE(4, uint32_t, ((uint32_t)(__len / 4)));
- WRITE(8, rbug_context_t, context); /* context */
- WRITE(4, int32_t, flags); /* flags */
-
- /* final pad */
- PAD(__pos, 8);
-
- if (__pos != __len) {
- __ret = -EINVAL;
- } else {
- rbug_connection_send_start(__con, RBUG_OP_CONTEXT_FLUSH, __len);
- rbug_connection_write(__con, __data, __len);
- __ret = rbug_connection_send_finish(__con, __serial);
- }
-
- FREE(__data);
- return __ret;
-}
-
-int rbug_send_context_rule_add(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_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)
{
uint32_t __len = 0;
uint32_t __pos = 0;
if (!__data)
return -ENOMEM;
- WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_RULE_ADD));
+ WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_RULE));
WRITE(4, uint32_t, ((uint32_t)(__len / 4)));
WRITE(8, rbug_context_t, context); /* context */
WRITE(8, rbug_shader_t, vertex); /* vertex */
if (__pos != __len) {
__ret = -EINVAL;
} else {
- rbug_connection_send_start(__con, RBUG_OP_CONTEXT_RULE_ADD, __len);
+ rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_RULE, __len);
rbug_connection_write(__con, __data, __len);
__ret = rbug_connection_send_finish(__con, __serial);
}
return __ret;
}
-int rbug_send_context_rule_delete(struct rbug_connection *__con,
- rbug_context_t context,
- rbug_block_rule_t rule,
- uint32_t *__serial)
+int rbug_send_context_flush(struct rbug_connection *__con,
+ rbug_context_t context,
+ int32_t flags,
+ uint32_t *__serial)
{
uint32_t __len = 0;
uint32_t __pos = 0;
LEN(8); /* header */
LEN(8); /* context */
- LEN(8); /* rule */
+ LEN(4); /* flags */
/* align */
PAD(__len, 8);
if (!__data)
return -ENOMEM;
- WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_RULE_DELETE));
+ WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_FLUSH));
WRITE(4, uint32_t, ((uint32_t)(__len / 4)));
WRITE(8, rbug_context_t, context); /* context */
- WRITE(8, rbug_block_rule_t, rule); /* rule */
+ WRITE(4, int32_t, flags); /* flags */
/* final pad */
PAD(__pos, 8);
if (__pos != __len) {
__ret = -EINVAL;
} else {
- rbug_connection_send_start(__con, RBUG_OP_CONTEXT_RULE_DELETE, __len);
+ rbug_connection_send_start(__con, RBUG_OP_CONTEXT_FLUSH, __len);
rbug_connection_write(__con, __data, __len);
__ret = rbug_connection_send_finish(__con, __serial);
}
return __ret;
}
-int rbug_send_context_rule_add_reply(struct rbug_connection *__con,
- uint32_t serial,
- rbug_block_rule_t rule,
- uint32_t *__serial)
-{
- uint32_t __len = 0;
- uint32_t __pos = 0;
- uint8_t *__data = NULL;
- int __ret = 0;
-
- LEN(8); /* header */
- LEN(4); /* serial */
- LEN(8); /* rule */
-
- /* align */
- PAD(__len, 8);
-
- __data = (uint8_t*)MALLOC(__len);
- if (!__data)
- return -ENOMEM;
-
- WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_RULE_ADD_REPLY));
- WRITE(4, uint32_t, ((uint32_t)(__len / 4)));
- WRITE(4, uint32_t, serial); /* serial */
- WRITE(8, rbug_block_rule_t, rule); /* rule */
-
- /* final pad */
- PAD(__pos, 8);
-
- if (__pos != __len) {
- __ret = -EINVAL;
- } else {
- rbug_connection_send_start(__con, RBUG_OP_CONTEXT_RULE_ADD_REPLY, __len);
- rbug_connection_write(__con, __data, __len);
- __ret = rbug_connection_send_finish(__con, __serial);
- }
-
- FREE(__data);
- return __ret;
-}
-
int rbug_send_context_draw_blocked(struct rbug_connection *__con,
rbug_context_t context,
rbug_block_t block,
return ret;
}
-struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header)
-{
- uint32_t len = 0;
- uint32_t pos = 0;
- uint8_t *data = NULL;
- struct rbug_proto_context_flush *ret;
-
- if (!header)
- return NULL;
- if (header->opcode != (int16_t)RBUG_OP_CONTEXT_FLUSH)
- return NULL;
-
- pos = 0;
- len = header->length * 4;
- data = (uint8_t*)&header[1];
- ret = MALLOC(sizeof(*ret));
- if (!ret)
- return NULL;
-
- ret->header.__message = header;
- ret->header.opcode = header->opcode;
-
- READ(8, rbug_context_t, context); /* context */
- READ(4, int32_t, flags); /* flags */
-
- return ret;
-}
-
-struct rbug_proto_context_rule_add * rbug_demarshal_context_rule_add(struct rbug_proto_header *header)
+struct rbug_proto_context_draw_rule * rbug_demarshal_context_draw_rule(struct rbug_proto_header *header)
{
uint32_t len = 0;
uint32_t pos = 0;
uint8_t *data = NULL;
- struct rbug_proto_context_rule_add *ret;
+ struct rbug_proto_context_draw_rule *ret;
if (!header)
return NULL;
- if (header->opcode != (int16_t)RBUG_OP_CONTEXT_RULE_ADD)
+ if (header->opcode != (int16_t)RBUG_OP_CONTEXT_DRAW_RULE)
return NULL;
pos = 0;
return ret;
}
-struct rbug_proto_context_rule_delete * rbug_demarshal_context_rule_delete(struct rbug_proto_header *header)
+struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header)
{
uint32_t len = 0;
uint32_t pos = 0;
uint8_t *data = NULL;
- struct rbug_proto_context_rule_delete *ret;
+ struct rbug_proto_context_flush *ret;
if (!header)
return NULL;
- if (header->opcode != (int16_t)RBUG_OP_CONTEXT_RULE_DELETE)
+ if (header->opcode != (int16_t)RBUG_OP_CONTEXT_FLUSH)
return NULL;
pos = 0;
ret->header.opcode = header->opcode;
READ(8, rbug_context_t, context); /* context */
- READ(8, rbug_block_rule_t, rule); /* rule */
+ READ(4, int32_t, flags); /* flags */
return ret;
}
return ret;
}
-struct rbug_proto_context_rule_add_reply * rbug_demarshal_context_rule_add_reply(struct rbug_proto_header *header)
-{
- uint32_t len = 0;
- uint32_t pos = 0;
- uint8_t *data = NULL;
- struct rbug_proto_context_rule_add_reply *ret;
-
- if (!header)
- return NULL;
- if (header->opcode != (int16_t)RBUG_OP_CONTEXT_RULE_ADD_REPLY)
- return NULL;
-
- pos = 0;
- len = header->length * 4;
- data = (uint8_t*)&header[1];
- ret = MALLOC(sizeof(*ret));
- if (!ret)
- return NULL;
-
- ret->header.__message = header;
- ret->header.opcode = header->opcode;
-
- READ(4, uint32_t, serial); /* serial */
- READ(8, rbug_block_rule_t, rule); /* rule */
-
- return ret;
-}
-
struct rbug_proto_context_draw_blocked * rbug_demarshal_context_draw_blocked(struct rbug_proto_header *header)
{
uint32_t len = 0;
#include "rbug/rbug_proto.h"
#include "rbug/rbug_core.h"
-typedef uint64_t rbug_block_rule_t;
-
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
rbug_block_t unblock;
};
-struct rbug_proto_context_flush
-{
- struct rbug_header header;
- rbug_context_t context;
- int32_t flags;
-};
-
-struct rbug_proto_context_rule_add
+struct rbug_proto_context_draw_rule
{
struct rbug_header header;
rbug_context_t context;
rbug_block_t block;
};
-struct rbug_proto_context_rule_delete
+struct rbug_proto_context_flush
{
struct rbug_header header;
rbug_context_t context;
- rbug_block_rule_t rule;
+ int32_t flags;
};
struct rbug_proto_context_list_reply
rbug_block_t blocked;
};
-struct rbug_proto_context_rule_add_reply
-{
- struct rbug_header header;
- uint32_t serial;
- rbug_block_rule_t rule;
-};
-
struct rbug_proto_context_draw_blocked
{
struct rbug_header header;
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_rule_add(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_rule_delete(struct rbug_connection *__con,
- rbug_context_t context,
- rbug_block_rule_t rule,
- uint32_t *__serial);
-
int rbug_send_context_list_reply(struct rbug_connection *__con,
uint32_t serial,
rbug_context_t *contexts,
rbug_block_t blocked,
uint32_t *__serial);
-int rbug_send_context_rule_add_reply(struct rbug_connection *__con,
- uint32_t serial,
- rbug_block_rule_t rule,
- uint32_t *__serial);
-
int rbug_send_context_draw_blocked(struct rbug_connection *__con,
rbug_context_t context,
rbug_block_t block,
struct rbug_proto_context_draw_unblock * rbug_demarshal_context_draw_unblock(struct rbug_proto_header *header);
-struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header);
-
-struct rbug_proto_context_rule_add * rbug_demarshal_context_rule_add(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_rule_delete * rbug_demarshal_context_rule_delete(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);
struct rbug_proto_context_info_reply * rbug_demarshal_context_info_reply(struct rbug_proto_header *header);
-struct rbug_proto_context_rule_add_reply * rbug_demarshal_context_rule_add_reply(struct rbug_proto_header *header);
-
struct rbug_proto_context_draw_blocked * rbug_demarshal_context_draw_blocked(struct rbug_proto_header *header);
#endif