IDX_COLOR_DEPTH
};
+int __guac_receive_channel_data(freerdp* rdp_inst, int channelId, uint8* data, int size, int flags, int total_size) {
+ return freerdp_channels_data(rdp_inst, channelId, data, size, flags, total_size);
+}
+
boolean rdp_freerdp_pre_connect(freerdp* instance) {
rdpContext* context = instance->context;
rdpPrimaryUpdate* primary;
CLRCONV* clrconv;
+ /* Load clipboard plugin */
+ freerdp_channels_load_plugin(channels, instance->settings, "cliprdr", NULL);
+
/* Init color conversion structure */
clrconv = xnew(CLRCONV);
clrconv->alpha = 1;
xfree(pointer);
/* Set up GDI */
+ instance->update->EndPaint = guac_rdp_gdi_end_paint;
instance->update->Palette = guac_rdp_gdi_palette_update;
instance->update->SetBounds = guac_rdp_gdi_set_bounds;
client->mouse_handler = rdp_guac_client_mouse_handler;
client->key_handler = rdp_guac_client_key_handler;
- /* Send size */
- guac_protocol_send_size(client->socket, GUAC_DEFAULT_LAYER,
- instance->settings->width, instance->settings->height);
-
return true;
}
rdp_inst = freerdp_new();
rdp_inst->PreConnect = rdp_freerdp_pre_connect;
rdp_inst->PostConnect = rdp_freerdp_post_connect;
+ rdp_inst->ReceiveChannelData = __guac_receive_channel_data;
/* Allocate FreeRDP context */
rdp_inst->context_size = sizeof(rdp_freerdp_context);
/* Send connection name */
guac_protocol_send_name(client->socket, settings->window_title);
+ /* Send size */
+ guac_protocol_send_size(client->socket, GUAC_DEFAULT_LAYER,
+ settings->width, settings->height);
+
+ /* Create glyph surfaces */
+ guac_client_data->opaque_glyph_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_RGB24, settings->width, settings->height);
+
+ guac_client_data->trans_glyph_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32, settings->width, settings->height);
+
/* Success */
return 0;