Implement deferred cache via memblt.
[libguac-client-rdp.git] / include / rdp_bitmap.h
index 2314ce8..b4cdd1e 100644 (file)
 
 #include <freerdp/freerdp.h>
 
+#include <guacamole/protocol.h>
+
+typedef struct guac_rdp_bitmap {
+
+    /**
+     * FreeRDP bitmap data - MUST GO FIRST.
+     */
+    rdpBitmap bitmap;
+
+    /**
+     * Guacamole layer containing cached image data.
+     */
+    guac_layer* layer;
+
+    /**
+     * The number of times a bitmap has been used.
+     */
+    int used;
+
+} guac_rdp_bitmap;
+
+void guac_rdp_cache_bitmap(rdpContext* context, rdpBitmap* bitmap);
 void guac_rdp_bitmap_new(rdpContext* context, rdpBitmap* bitmap);
+void guac_rdp_bitmap_decompress(rdpContext* context, rdpBitmap* bitmap, uint8* data, int width, int height, int bpp, int length, boolean compressed);
+void guac_rdp_bitmap_paint(rdpContext* context, rdpBitmap* bitmap);
+void guac_rdp_bitmap_free(rdpContext* context, rdpBitmap* bitmap);
+void guac_rdp_bitmap_setsurface(rdpContext* context, rdpBitmap* bitmap, boolean primary);
 
 #endif