summaryrefslogtreecommitdiffstats
path: root/server/dcc.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/dcc.h')
-rw-r--r--server/dcc.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/server/dcc.h b/server/dcc.h
index a6e1cc7f..12bb38e7 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -135,6 +135,17 @@ typedef struct ImageItem {
uint8_t data[0];
} ImageItem;
+typedef struct DrawablePipeItem {
+ RingItem base; /* link for a list of pipe items held by Drawable */
+ PipeItem dpi_pipe_item; /* link for the client's pipe itself */
+ Drawable *drawable;
+ DisplayChannelClient *dcc;
+ uint8_t refs;
+} DrawablePipeItem;
+
+void drawable_pipe_item_unref (DrawablePipeItem *dpi);
+DrawablePipeItem* drawable_pipe_item_ref (DrawablePipeItem *dpi);
+
DisplayChannelClient* dcc_new (DisplayChannel *display,
RedClient *client,
RedsStream *stream,
@@ -172,6 +183,13 @@ void dcc_palette_cache_palette (DisplayCha
uint8_t *flags);
int dcc_pixmap_cache_unlocked_add (DisplayChannelClient *dcc,
uint64_t id, uint32_t size, int lossy);
+void dcc_prepend_drawable (DisplayChannelClient *dcc,
+ Drawable *drawable);
+void dcc_append_drawable (DisplayChannelClient *dcc,
+ Drawable *drawable);
+void dcc_add_drawable_after (DisplayChannelClient *dcc,
+ Drawable *drawable,
+ PipeItem *pos);
typedef struct compress_send_data_t {
void* comp_buf;