1
/* -*- c-basic-offset: 8 -*-
2
freerdp: A Remote Desktop Protocol client.
4
Copyright (C) Jay Sorg 2009
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
34
struct bmpcache_entry bmpcache[3][0xa00];
35
RD_HBITMAP volatile_bc[3];
36
RD_HBITMAP drawing_surface[100];
39
int bmpcache_count[3];
40
FONTGLYPH fontcache[12][256];
41
DATABLOB textcache[256];
42
RD_HCURSOR cursorcache[0x20];
43
RD_BRUSHDATA brushcache[2][64];
45
typedef struct rdp_cache rdpCache;
48
cache_rebuild_bmpcache_linked_list(rdpCache * cache, uint8 id, sint16 * idx, int count);
50
cache_bump_bitmap(rdpCache * cache, uint8 id, uint16 idx, int bump);
52
cache_evict_bitmap(rdpCache * cache, uint8 id);
54
cache_get_bitmap(rdpCache * cache, uint8 id, uint16 idx);
56
cache_put_bitmap(rdpCache * cache, uint8 id, uint16 idx, RD_HBITMAP bitmap);
58
cache_save_state(rdpCache * cache);
60
cache_get_font(rdpCache * cache, uint8 font, uint16 character);
62
cache_put_font(rdpCache * cache, uint8 font, uint16 character, uint16 offset, uint16 baseline,
63
uint16 width, uint16 height, RD_HGLYPH pixmap);
65
cache_get_text(rdpCache * cache, uint8 cache_id);
67
cache_put_text(rdpCache * cache, uint8 cache_id, void *data, int length);
69
cache_get_cursor(rdpCache * cache, uint16 cache_idx);
71
cache_put_cursor(rdpCache * cache, uint16 cache_idx, RD_HCURSOR cursor);
73
cache_get_brush_data(rdpCache * cache, uint8 colour_code, uint8 idx);
75
cache_put_brush_data(rdpCache * cache, uint8 colour_code, uint8 idx, RD_BRUSHDATA * brush_data);
77
cache_new(struct rdp_rdp * rdp);
79
cache_free(rdpCache * cache);