GUACAMOLE-377: Control RemoteFX / GFX support with "enable-gfx" parameter.
This commit is contained in:
parent
c469300941
commit
c795bf9e4a
@ -197,6 +197,7 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
|
|||||||
palette_cache_register_callbacks(instance->update);
|
palette_cache_register_callbacks(instance->update);
|
||||||
|
|
||||||
/* Load "rdpgfx" plugin for Graphics Pipeline Extension */
|
/* Load "rdpgfx" plugin for Graphics Pipeline Extension */
|
||||||
|
if (settings->enable_gfx)
|
||||||
guac_rdp_rdpgfx_load_plugin(context);
|
guac_rdp_rdpgfx_load_plugin(context);
|
||||||
|
|
||||||
/* Load plugin providing Dynamic Virtual Channel support, if required */
|
/* Load plugin providing Dynamic Virtual Channel support, if required */
|
||||||
|
@ -109,6 +109,7 @@ const char* GUAC_RDP_CLIENT_ARGS[] = {
|
|||||||
"create-recording-path",
|
"create-recording-path",
|
||||||
"resize-method",
|
"resize-method",
|
||||||
"enable-audio-input",
|
"enable-audio-input",
|
||||||
|
"enable-gfx",
|
||||||
"enable-touch",
|
"enable-touch",
|
||||||
"read-only",
|
"read-only",
|
||||||
|
|
||||||
@ -539,6 +540,12 @@ enum RDP_ARGS_IDX {
|
|||||||
*/
|
*/
|
||||||
IDX_ENABLE_AUDIO_INPUT,
|
IDX_ENABLE_AUDIO_INPUT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* "true" if the RDP Graphics Pipeline Extension should be used, "false" or
|
||||||
|
* blank if traditional RDP graphics should be used instead.
|
||||||
|
*/
|
||||||
|
IDX_ENABLE_GFX,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "true" if multi-touch support should be enabled for the RDP connection,
|
* "true" if multi-touch support should be enabled for the RDP connection,
|
||||||
* "false" or blank otherwise.
|
* "false" or blank otherwise.
|
||||||
@ -1129,6 +1136,11 @@ guac_rdp_settings* guac_rdp_parse_args(guac_user* user,
|
|||||||
settings->resize_method = GUAC_RESIZE_NONE;
|
settings->resize_method = GUAC_RESIZE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* RDP Graphics Pipeline enable/disable */
|
||||||
|
settings->enable_gfx =
|
||||||
|
guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv,
|
||||||
|
IDX_ENABLE_GFX, 0);
|
||||||
|
|
||||||
/* Multi-touch input enable/disable */
|
/* Multi-touch input enable/disable */
|
||||||
settings->enable_touch =
|
settings->enable_touch =
|
||||||
guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv,
|
guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv,
|
||||||
@ -1397,16 +1409,25 @@ void guac_rdp_push_settings(guac_client* client,
|
|||||||
/* Explicitly set flag value */
|
/* Explicitly set flag value */
|
||||||
rdp_settings->PerformanceFlags = guac_rdp_get_performance_flags(guac_settings);
|
rdp_settings->PerformanceFlags = guac_rdp_get_performance_flags(guac_settings);
|
||||||
|
|
||||||
|
/* Enable RemoteFX / Graphics Pipeline */
|
||||||
|
if (guac_settings->enable_gfx) {
|
||||||
|
|
||||||
rdp_settings->SupportGraphicsPipeline = TRUE;
|
rdp_settings->SupportGraphicsPipeline = TRUE;
|
||||||
rdp_settings->RemoteFxCodec = TRUE;
|
rdp_settings->RemoteFxCodec = TRUE;
|
||||||
|
|
||||||
|
if (rdp_settings->ColorDepth != 32) {
|
||||||
|
guac_client_log(client, GUAC_LOG_WARNING, "Ignoring requested "
|
||||||
|
"color depth of %i bpp, as the RDP Graphics Pipeline "
|
||||||
|
"requires 32 bpp.", rdp_settings->ColorDepth);
|
||||||
|
}
|
||||||
|
|
||||||
/* Required for RemoteFX / Graphics Pipeline */
|
/* Required for RemoteFX / Graphics Pipeline */
|
||||||
rdp_settings->FastPathOutput = TRUE;
|
rdp_settings->FastPathOutput = TRUE;
|
||||||
rdp_settings->FrameMarkerCommandEnabled = TRUE;
|
rdp_settings->FrameMarkerCommandEnabled = TRUE;
|
||||||
rdp_settings->ColorDepth = 32;
|
rdp_settings->ColorDepth = 32;
|
||||||
rdp_settings->SoftwareGdi = TRUE;
|
rdp_settings->SoftwareGdi = TRUE;
|
||||||
/*rdp_settings->GfxH264 = TRUE;
|
|
||||||
rdp_settings->GfxAVC444 = TRUE;*/
|
}
|
||||||
|
|
||||||
/* Set individual flags - some FreeRDP versions overwrite the above */
|
/* Set individual flags - some FreeRDP versions overwrite the above */
|
||||||
rdp_settings->AllowFontSmoothing = guac_settings->font_smoothing_enabled;
|
rdp_settings->AllowFontSmoothing = guac_settings->font_smoothing_enabled;
|
||||||
|
@ -552,6 +552,11 @@ typedef struct guac_rdp_settings {
|
|||||||
*/
|
*/
|
||||||
int enable_audio_input;
|
int enable_audio_input;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the RDP Graphics Pipeline Extension is enabled.
|
||||||
|
*/
|
||||||
|
int enable_gfx;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether multi-touch support is enabled.
|
* Whether multi-touch support is enabled.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user