diff options
Diffstat (limited to 'server/dcc.h')
-rw-r--r-- | server/dcc.h | 18 |
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; |