diff --git a/protocols/rdp/include/rdp_bitmap.h b/protocols/rdp/include/rdp_bitmap.h index 9e6d0f02..857f64d0 100644 --- a/protocols/rdp/include/rdp_bitmap.h +++ b/protocols/rdp/include/rdp_bitmap.h @@ -57,5 +57,7 @@ typedef struct guac_rdp_bitmap { } guac_rdp_bitmap; void guac_rdp_bitmap_new(rdpContext* context, rdpBitmap* bitmap); +void guac_rdp_bitmap_paint(rdpContext* context, rdpBitmap* bitmap); +void guac_rdp_bitmap_free(rdpContext* context, rdpBitmap* bitmap); #endif diff --git a/protocols/rdp/src/client.c b/protocols/rdp/src/client.c index 07fa72ae..4e5c6b97 100644 --- a/protocols/rdp/src/client.c +++ b/protocols/rdp/src/client.c @@ -74,8 +74,8 @@ boolean rdp_freerdp_pre_connect(freerdp* instance) { bitmap = xnew(rdpBitmap); bitmap->size = sizeof(guac_rdp_bitmap); bitmap->New = guac_rdp_bitmap_new; - /* bitmap->Free = guac_rdp_bitmap_free; */ - /* bitmap->Paint = guac_rdp_bitmap_paint; */ + bitmap->Free = guac_rdp_bitmap_free; + bitmap->Paint = guac_rdp_bitmap_paint; /* bitmap->Decompress = guac_rdp_bitmap_decompress; */ /* bitmap->SetSurface = guac_rdp_bitmap_setsurface; */ graphics_register_bitmap(context->graphics, bitmap); diff --git a/protocols/rdp/src/rdp_bitmap.c b/protocols/rdp/src/rdp_bitmap.c index c9c321ef..cb597551 100644 --- a/protocols/rdp/src/rdp_bitmap.c +++ b/protocols/rdp/src/rdp_bitmap.c @@ -95,3 +95,12 @@ void guac_rdp_bitmap_new(rdpContext* context, rdpBitmap* bitmap) { } +void guac_rdp_bitmap_paint(rdpContext* context, rdpBitmap* bitmap) { + /* STUB */ +} + +void guac_rdp_bitmap_free(rdpContext* context, rdpBitmap* bitmap) { + guac_client* client = ((rdp_freerdp_context*) context)->client; + guac_client_free_buffer(client, ((guac_rdp_bitmap*) bitmap)->layer); +} +