static BOOL wl_post_connect(freerdp* instance) { rdpGdi* gdi; UwacWindow* window; wlfContext* context; if (!gdi_init(instance, PIXEL_FORMAT_BGRA32)) return FALSE; gdi = instance->context->gdi; if (!gdi) return FALSE; context = (wlfContext*) instance->context; context->window = window = UwacCreateWindowShm(context->display, gdi->width, gdi->height, WL_SHM_FORMAT_XRGB8888); if (!window) return FALSE; UwacWindowSetFullscreenState(window, NULL, instance->context->settings->Fullscreen); UwacWindowSetTitle(window, "FreeRDP"); UwacWindowSetOpaqueRegion(context->window, 0, 0, gdi->width, gdi->height); instance->update->BeginPaint = wl_begin_paint; instance->update->EndPaint = wl_end_paint; memcpy(UwacWindowGetDrawingBuffer(context->window), gdi->primary_buffer, gdi->width * gdi->height * 4); UwacWindowAddDamage(context->window, 0, 0, gdi->width, gdi->height); context->haveDamage = TRUE; freerdp_keyboard_init(instance->context->settings->KeyboardLayout); return wl_update_content(context); }
static BOOL wl_post_connect(freerdp* instance) { rdpGdi* gdi; UwacWindow* window; wlfContext* context; if (!gdi_init(instance, CLRCONV_ALPHA | CLRBUF_32BPP, NULL)) return FALSE; gdi = instance->context->gdi; if (!gdi) return FALSE; context = (wlfContext*) instance->context; context->window = window = UwacCreateWindowShm(context->display, gdi->width, gdi->height, WL_SHM_FORMAT_XRGB8888); if (!window) return FALSE; UwacWindowSetTitle(window, "FreeRDP"); instance->update->BeginPaint = wl_begin_paint; instance->update->EndPaint = wl_end_paint; if (freerdp_channels_post_connect(instance->context->channels, instance) < 0) return FALSE; memcpy(UwacWindowGetDrawingBuffer(context->window), gdi->primary_buffer, gdi->width * gdi->height * 4); UwacWindowAddDamage(context->window, 0, 0, gdi->width, gdi->height); context->haveDamage = TRUE; return wl_update_content(context); }