set SURFACE_BITS_COMMAND cmdType explicitly
authorKen C <v-kecla@microsoft.com>
Sat, 11 Apr 2020 22:05:59 +0000 (15:05 -0700)
committerDaniel Stone <daniels@collabora.com>
Tue, 12 May 2020 07:30:20 +0000 (07:30 +0000)
libweston/backend-rdp/meson.build
libweston/backend-rdp/rdp.c

index 95d9a83b498adc2d2bd0fad91a90354139845cd6..e3b60250793cd42fb3f282a0b781b5d0fee25dd8 100644 (file)
@@ -26,6 +26,22 @@ if cc.has_member(
        config_h.set('HAVE_SURFACE_BITS_BMP', '1')
 endif
 
+if cc.has_type(
+       'enum SURFCMD_CMDTYPE',
+       dependencies : dep_frdp,
+       prefix : '#include <freerdp/update.h>'
+)
+       config_h.set('HAVE_SURFCMD_CMDTYPE', '1')
+endif
+
+if cc.has_function(
+       'nsc_context_set_parameters',
+       dependencies : dep_frdp,
+       prefix: '#include <freerdp/codec/nsc.h>'
+)
+       config_h.set('HAVE_NSC_CONTEXT_SET_PARAMETERS', '1')
+endif
+
 deps_rdp = [
        dep_libweston_private,
        dep_frdp,
index 2b33d29cfbf97310849243e04a154fd685850b9c..9e414aa24c4bd296168d3f749d5c70af86b19c09 100644 (file)
@@ -212,6 +212,9 @@ rdp_peer_refresh_rfx(pixman_region32_t *damage, pixman_image_t *image, freerdp_p
        cmd.skipCompression = TRUE;
 #else
        memset(&cmd, 0, sizeof(*cmd));
+#endif
+#ifdef HAVE_SURFCMD_CMDTYPE
+       cmd.cmdType = CMDTYPE_STREAM_SURFACE_BITS;
 #endif
        cmd.destLeft = damage->extents.x1;
        cmd.destTop = damage->extents.y1;
@@ -270,7 +273,9 @@ rdp_peer_refresh_nsc(pixman_region32_t *damage, pixman_image_t *image, freerdp_p
 #else
        memset(cmd, 0, sizeof(*cmd));
 #endif
-
+#ifdef HAVE_SURFCMD_CMDTYPE
+       cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
+#endif
        cmd.destLeft = damage->extents.x1;
        cmd.destTop = damage->extents.y1;
        cmd.destRight = damage->extents.x2;
@@ -326,6 +331,9 @@ rdp_peer_refresh_raw(pixman_region32_t *region, pixman_image_t *image, freerdp_p
        update->SurfaceFrameMarker(peer->context, &marker);
 
        memset(&cmd, 0, sizeof(cmd));
+#ifdef HAVE_SURFCMD_CMDTYPE
+       cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
+#endif
        SURFACE_BPP(cmd) = 32;
        SURFACE_CODECID(cmd) = 0;
 
@@ -758,8 +766,11 @@ rdp_peer_context_new(freerdp_peer* client, RdpPeerContext* context)
        if (!context->nsc_context)
                goto out_error_nsc;
 
+#ifdef HAVE_NSC_CONTEXT_SET_PARAMETERS
+       nsc_context_set_parameters(context->nsc_context, NSC_COLOR_FORMAT, DEFAULT_PIXEL_FORMAT);
+#else
        nsc_context_set_pixel_format(context->nsc_context, DEFAULT_PIXEL_FORMAT);
-
+#endif
        context->encode_stream = Stream_New(NULL, 65536);
        if (!context->encode_stream)
                goto out_error_stream;