1 --- weston-5.0.0/libweston/compositor-rdp.c.orig 2018-08-24 20:04:16.000000000 +0200
2 +++ weston-5.0.0/libweston/compositor-rdp.c 2018-10-11 21:16:08.197352052 +0200
4 #include <freerdp/listener.h>
5 #include <freerdp/update.h>
6 #include <freerdp/input.h>
7 +#include <freerdp/cache/cache.h>
8 #include <freerdp/codec/color.h>
9 #include <freerdp/codec/rfx.h>
10 #include <freerdp/codec/nsc.h>
14 rdpUpdate *update = peer->update;
15 - SURFACE_BITS_COMMAND *cmd = &update->surface_bits_command;
16 + SURFACE_BITS_COMMAND *cmd = calloc(1, sizeof(SURFACE_BITS_COMMAND));
17 RdpPeerContext *context = (RdpPeerContext *)peer->context;
21 Stream_Clear(context->encode_stream);
22 Stream_SetPosition(context->encode_stream, 0);
25 #ifdef HAVE_SKIP_COMPRESSION
26 cmd->skipCompression = TRUE;
28 - memset(cmd, 0, sizeof(*cmd));
30 cmd->destLeft = damage->extents.x1;
31 cmd->destTop = damage->extents.y1;
33 SURFACE_BITMAP_DATA(cmd) = Stream_Buffer(context->encode_stream);
35 update->SurfaceBits(update->context, cmd);
44 rdpUpdate *update = peer->update;
45 - SURFACE_BITS_COMMAND *cmd = &update->surface_bits_command;
46 + SURFACE_BITS_COMMAND *cmd = calloc(1, sizeof(SURFACE_BITS_COMMAND));
47 RdpPeerContext *context = (RdpPeerContext *)peer->context;
51 Stream_Clear(context->encode_stream);
52 Stream_SetPosition(context->encode_stream, 0);
55 #ifdef HAVE_SKIP_COMPRESSION
56 cmd->skipCompression = TRUE;
58 - memset(cmd, 0, sizeof(*cmd));
61 cmd->destLeft = damage->extents.x1;
63 SURFACE_BITMAP_DATA(cmd) = Stream_Buffer(context->encode_stream);
65 update->SurfaceBits(update->context, cmd);
72 rdp_peer_refresh_raw(pixman_region32_t *region, pixman_image_t *image, freerdp_peer *peer)
74 rdpUpdate *update = peer->update;
75 - SURFACE_BITS_COMMAND *cmd = &update->surface_bits_command;
76 - SURFACE_FRAME_MARKER *marker = &update->surface_frame_marker;
77 + SURFACE_BITS_COMMAND *cmd = calloc(1, sizeof(SURFACE_BITS_COMMAND));
80 + SURFACE_FRAME_MARKER *marker = calloc(1, sizeof(SURFACE_FRAME_MARKER));
83 pixman_box32_t *rect, subrect;
85 int heightIncrement, remainingHeight, top;
87 rect = pixman_region32_rectangles(region, &nrects);
93 marker->frameAction = SURFACECMD_FRAMEACTION_BEGIN;
96 marker->frameAction = SURFACECMD_FRAMEACTION_END;
97 update->SurfaceFrameMarker(peer->context, marker);
105 @@ -1055,9 +1068,10 @@
106 peersItem->flags |= RDP_PEER_ACTIVATED;
108 /* disable pointer on the client side */
109 + POINTER_SYSTEM_UPDATE pointer_system;
110 + pointer_system.type = SYSPTR_NULL;
111 pointer = client->update->pointer;
112 - pointer->pointer_system.type = SYSPTR_NULL;
113 - pointer->PointerSystem(client->context, &pointer->pointer_system);
114 + pointer->PointerSystem(client->context, &pointer_system);
116 /* sends a full refresh */