1 #ifndef VPDF_FONTCACHE_H
2 #define VPDF_FONTCACHE_H
4 /* custom fontconfig types */
17 #define FC_WEIGHT_THIN 0
18 #define FC_WEIGHT_EXTRALIGHT 40
19 #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
20 #define FC_WEIGHT_LIGHT 50
21 #define FC_WEIGHT_BOOK 75
22 #define FC_WEIGHT_REGULAR 80
23 #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
24 #define FC_WEIGHT_MEDIUM 100
25 #define FC_WEIGHT_DEMIBOLD 180
26 #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
27 #define FC_WEIGHT_BOLD 200
28 #define FC_WEIGHT_EXTRABOLD 205
29 #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
30 #define FC_WEIGHT_BLACK 210
31 #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
32 #define FC_WEIGHT_EXTRABLACK 215
33 #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
35 #define FC_SLANT_ROMAN 0
36 #define FC_SLANT_ITALIC 100
37 #define FC_SLANT_OBLIQUE 110
39 #define FC_WIDTH_ULTRACONDENSED 50
40 #define FC_WIDTH_EXTRACONDENSED 63
41 #define FC_WIDTH_CONDENSED 75
42 #define FC_WIDTH_SEMICONDENSED 87
43 #define FC_WIDTH_NORMAL 100
44 #define FC_WIDTH_SEMIEXPANDED 113
45 #define FC_WIDTH_EXPANDED 125
46 #define FC_WIDTH_EXTRAEXPANDED 150
47 #define FC_WIDTH_ULTRAEXPANDED 200
49 #define FC_PROPORTIONAL 0
52 #define FC_CHARCELL 110
62 FC_INDEX
, /* index of a face in font file */
75 static int fcelementpriority
[] = {
79 //{FC_FULLNAMELANG, 8},
87 //{FC_DECORATIVE, 93},
90 //{FC_PROPORTIONAL, 91},
115 int id
; /* multiple elements can be on the list */
116 int excluding
; /* for patterns used as match criteria */
117 union patternvalue value
;
120 int fcPatternAddString(struct fontpattern
*pat
, int element
, char *value
);
121 int fcPatternAddInteger(struct fontpattern
*pat
, int element
, int value
);
122 int fcPatternAddExcludingInteger(struct fontpattern
*pat
, int element
, int value
);
123 char *fcPatternGetString(struct fontpattern
*pat
, int element
, int id
);
124 int fcPatternGetInteger(struct fontpattern
*pat
, int element
, int id
);
125 struct patternentry
*fcPatternGetEntry(struct fontpattern
*pat
, int element
, int id
);
126 struct fontpattern
*fcPatternAlloc(void);
127 void fcPatternDestroy(struct fontpattern
*fd
);
128 struct fontcache
*fcCreate(char *directories
[]);
129 void fcDestroy(struct fontcache
*cache
);
130 struct fontpattern
*fcMatch(struct fontcache
*cache
, struct fontpattern
*pat
, int *matchingcriteria
);
132 struct fontcache
*fcLoad(char *fname
);
133 int fcSave(struct fontcache
*fontcache
, char *fname
);
134 int fcAddPattern(struct fontcache
*fontcache
, struct fontpattern
*pat
);