mirror of
https://github.com/FreeRDP/FreeRDP.git
synced 2025-06-03 00:00:20 +00:00
[server,shadow] wait for rdpegfx channel ready
we need to wait until the capability messages are exchanged before starting to issue gfx commands
This commit is contained in:
parent
e067e9dc6d
commit
4add7836fa
@ -135,6 +135,7 @@ extern "C"
|
|||||||
BOOL resizeRequested;
|
BOOL resizeRequested;
|
||||||
UINT32 resizeWidth;
|
UINT32 resizeWidth;
|
||||||
UINT32 resizeHeight;
|
UINT32 resizeHeight;
|
||||||
|
BOOL areGfxCapsReady;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rdp_shadow_server
|
struct rdp_shadow_server
|
||||||
|
@ -796,7 +796,9 @@ static UINT shadow_client_send_caps_confirm(RdpgfxServerContext* context, rdpSha
|
|||||||
WINPR_ASSERT(pdu);
|
WINPR_ASSERT(pdu);
|
||||||
|
|
||||||
WINPR_ASSERT(context->CapsConfirm);
|
WINPR_ASSERT(context->CapsConfirm);
|
||||||
return context->CapsConfirm(context, pdu);
|
UINT rc = context->CapsConfirm(context, pdu);
|
||||||
|
client->areGfxCapsReady = (rc == CHANNEL_RC_OK);
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL shadow_client_caps_test_version(RdpgfxServerContext* context, rdpShadowClient* client,
|
static BOOL shadow_client_caps_test_version(RdpgfxServerContext* context, rdpShadowClient* client,
|
||||||
@ -900,12 +902,11 @@ static UINT shadow_client_rdpgfx_caps_advertise(RdpgfxServerContext* context,
|
|||||||
BOOL h264 = FALSE;
|
BOOL h264 = FALSE;
|
||||||
|
|
||||||
UINT32 flags = 0;
|
UINT32 flags = 0;
|
||||||
rdpShadowClient* client;
|
|
||||||
|
|
||||||
WINPR_ASSERT(context);
|
WINPR_ASSERT(context);
|
||||||
WINPR_ASSERT(capsAdvertise);
|
WINPR_ASSERT(capsAdvertise);
|
||||||
|
|
||||||
client = (rdpShadowClient*)context->custom;
|
rdpShadowClient* client = (rdpShadowClient*)context->custom;
|
||||||
WINPR_ASSERT(client);
|
WINPR_ASSERT(client);
|
||||||
WINPR_ASSERT(context->rdpcontext);
|
WINPR_ASSERT(context->rdpcontext);
|
||||||
|
|
||||||
@ -1831,7 +1832,7 @@ static BOOL shadow_client_send_surface_update(rdpShadowClient* client, SHADOW_GF
|
|||||||
|
|
||||||
if (freerdp_settings_get_bool(settings, FreeRDP_SupportGraphicsPipeline))
|
if (freerdp_settings_get_bool(settings, FreeRDP_SupportGraphicsPipeline))
|
||||||
{
|
{
|
||||||
if (pStatus->gfxOpened)
|
if (pStatus->gfxOpened && client->areGfxCapsReady)
|
||||||
{
|
{
|
||||||
/* GFX/h264 always full screen encoded */
|
/* GFX/h264 always full screen encoded */
|
||||||
nWidth = freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth);
|
nWidth = freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth);
|
||||||
|
Loading…
Reference in New Issue
Block a user