Example #1
0
rdpGlyphCache* glyph_cache_new(rdpSettings* settings)
{
	int i;
	rdpGlyphCache* glyphCache;
	glyphCache = (rdpGlyphCache*) calloc(1, sizeof(rdpGlyphCache));

	if (!glyphCache)
		return NULL;

	glyphCache->log = WLog_Get("com.freerdp.cache.glyph");
	glyphCache->settings = settings;
	glyphCache->context = ((freerdp*) settings->instance)->update->context;

	for (i = 0; i < 10; i++)
	{
		glyphCache->glyphCache[i].number = settings->GlyphCache[i].cacheEntries;
		glyphCache->glyphCache[i].maxCellSize =
		    settings->GlyphCache[i].cacheMaximumCellSize;
		glyphCache->glyphCache[i].entries = (rdpGlyph**) calloc(
		                                        glyphCache->glyphCache[i].number, sizeof(rdpGlyph*));

		if (!glyphCache->glyphCache[i].entries)
			goto fail;
	}

	glyphCache->fragCache.entries = calloc(256, sizeof(FRAGMENT_CACHE_ENTRY));

	if (!glyphCache->fragCache.entries)
		goto fail;

	return glyphCache;
fail:
	glyph_cache_free(glyphCache);
	return NULL;
}
Example #2
0
void cache_free(rdpCache* cache)
{
	if (cache != NULL)
	{
		glyph_cache_free(cache->glyph);
		brush_cache_free(cache->brush);
		pointer_cache_free(cache->pointer);
		bitmap_cache_free(cache->bitmap);
		offscreen_cache_free(cache->offscreen);
		color_table_cache_free(cache->color_table);
		xfree(cache);
	}
}
Example #3
0
void cache_free(rdpCache* cache)
{
	if (cache != NULL)
	{
		glyph_cache_free(cache->glyph);
		brush_cache_free(cache->brush);
		pointer_cache_free(cache->pointer);
		bitmap_cache_free(cache->bitmap);
		offscreen_cache_free(cache->offscreen);
		palette_cache_free(cache->palette);
		nine_grid_cache_free(cache->nine_grid);
		xfree(cache);
	}
}
Example #4
0
rdpCache* cache_new(rdpSettings* settings)
{
	rdpCache* cache;

	cache = (rdpCache*) calloc(1, sizeof(rdpCache));
	if (!cache)
		return NULL;

	cache->settings = settings;
	cache->glyph = glyph_cache_new(settings);
	if (!cache->glyph)
		goto error_glyph;
	cache->brush = brush_cache_new(settings);
	if (!cache->brush)
		goto error_brush;
	cache->pointer = pointer_cache_new(settings);
	if (!cache->pointer)
		goto error_pointer;
	cache->bitmap = bitmap_cache_new(settings);
	if (!cache->bitmap)
		goto error_bitmap;
	cache->offscreen = offscreen_cache_new(settings);
	if (!cache->offscreen)
		goto error_offscreen;
	cache->palette = palette_cache_new(settings);
	if (!cache->palette)
		goto error_palette;
	cache->nine_grid = nine_grid_cache_new(settings);
	if (!cache->nine_grid)
		goto error_ninegrid;

	return cache;

error_ninegrid:
	palette_cache_free(cache->palette);
error_palette:
	offscreen_cache_free(cache->offscreen);
error_offscreen:
	bitmap_cache_free(cache->bitmap);
error_bitmap:
	pointer_cache_free(cache->pointer);
error_pointer:
	brush_cache_free(cache->brush);
error_brush:
	glyph_cache_free(cache->glyph);
error_glyph:
	free(cache);
	return NULL;
}