Commit | Line | Data |
---|---|---|
2f185955 WJ |
1 | /* Copyright (C) 1992 Aladdin Enterprises. All rights reserved. |
2 | Distributed by Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of Ghostscript. | |
5 | ||
6 | Ghostscript is distributed in the hope that it will be useful, but | |
7 | WITHOUT ANY WARRANTY. No author or distributor accepts responsibility | |
8 | to anyone for the consequences of using it or for whether it serves any | |
9 | particular purpose or works at all, unless he says so in writing. Refer | |
10 | to the Ghostscript General Public License for full details. | |
11 | ||
12 | Everyone is granted permission to copy, modify and redistribute | |
13 | Ghostscript, but only under the conditions described in the Ghostscript | |
14 | General Public License. A copy of this license is supposed to have been | |
15 | given to you along with Ghostscript so you can know your rights and | |
16 | responsibilities. It should be in a file named COPYING. Among other | |
17 | things, the copyright notice and this notice must be preserved on all | |
18 | copies. */ | |
19 | ||
20 | /* gxcache.h */ | |
21 | /* Definitions for character cache */ | |
22 | /* Requires gxchar.h */ | |
23 | ||
24 | /* The character cache contains both used and free blocks. */ | |
25 | /* All blocks have a common header. */ | |
26 | typedef struct cached_char_head_s { | |
27 | uint size; /* total block size in bytes */ | |
28 | cached_fm_pair *pair; /* font/matrix pair, 0 if free */ | |
29 | } cached_char_head; | |
30 | #define cc_head_is_free(cch) ((cch)->pair == 0) | |
31 | #define cc_head_set_free(cch) ((cch)->pair = 0) | |
32 | /* A cached bitmap for an individual character. */ | |
33 | /* The bits immediately follow the structure. */ | |
34 | struct cached_char_s { | |
35 | /* The code and font/matrix pair are the 'key' in the cache. */ | |
36 | cached_char_head head; /* (must be first) */ | |
37 | /* references font/matrix pair */ | |
38 | char_code code; /* character code */ | |
39 | cached_char *next; /* next in replacement ring */ | |
40 | /* The rest of the structure is the 'value'. */ | |
41 | ushort raster, height; /* dimensions of bitmap */ | |
42 | ushort width; | |
43 | gx_bitmap_id id; | |
44 | gs_fixed_point wxy; /* width in device coords */ | |
45 | gs_fixed_point offset; /* (-llx, -lly) in device coords */ | |
46 | }; | |
47 | #define cc_is_free(cc) cc_head_is_free(&(cc)->head) | |
48 | #define cc_set_free(cc) cc_head_set_free(&(cc)->head) |