Ejemplo n.º 1
0
int shadow_client_init_lobby(rdpShadowClient* client)
{
    int width;
    int height;
    rdtkEngine* engine;
    rdtkSurface* surface;
    RECTANGLE_16 invalidRect;
    rdpShadowSurface* lobby;
    rdpContext* context = (rdpContext*) client;
    rdpSettings* settings = context->settings;

    width = settings->DesktopWidth;
    height = settings->DesktopHeight;

    lobby = client->lobby = shadow_surface_new(client->server, 0, 0, width, height);

    if (!client->lobby)
        return -1;

    engine = rdtk_engine_new();

    surface = rdtk_surface_new(engine, lobby->data, lobby->width, lobby->height, lobby->scanline);

    rdtk_surface_fill(surface, 0, 0, width, height, 0x3BB9FF);
    //rdtk_label_draw(surface, 16, 16, 128, 32, NULL, "label", 0, 0);
    //rdtk_button_draw(surface, 16, 64, 128, 32, NULL, "button");
    //rdtk_text_field_draw(surface, 16, 128, 128, 32, NULL, "text field");

    rdtk_surface_free(surface);

    rdtk_engine_free(engine);

    invalidRect.left = 0;
    invalidRect.top = 0;
    invalidRect.right = width;
    invalidRect.bottom = height;

    region16_union_rect(&(lobby->invalidRegion), &(lobby->invalidRegion), &invalidRect);

    return 1;
}
Ejemplo n.º 2
0
rdpShadowScreen* shadow_screen_new(rdpShadowServer* server)
{
	int x, y;
	int width, height;
	MONITOR_DEF* primary;
	rdpShadowScreen* screen;
	rdpShadowSubsystem* subsystem;

	screen = (rdpShadowScreen*) calloc(1, sizeof(rdpShadowScreen));

	if (!screen)
		return NULL;

	screen->server = server;
	subsystem = server->subsystem;

	if (!InitializeCriticalSectionAndSpinCount(&(screen->lock), 4000))
		return NULL;

	region16_init(&(screen->invalidRegion));

	primary = &(subsystem->monitors[0]);

	x = primary->left;
	y = primary->top;
	width = primary->right - primary->left;
	height = primary->bottom - primary->top;

	screen->width = width;
	screen->height = height;

	screen->primary = shadow_surface_new(server, x, y, width, height);

	if (!screen->primary)
		return NULL;

	server->surface = screen->primary;

	return screen;
}