Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/linuxbsd_headers/fontconfig/fontconfig.h
9904 views
1
/*
2
* fontconfig/fontconfig/fontconfig.h
3
*
4
* Copyright © 2001 Keith Packard
5
*
6
* Permission to use, copy, modify, distribute, and sell this software and its
7
* documentation for any purpose is hereby granted without fee, provided that
8
* the above copyright notice appear in all copies and that both that
9
* copyright notice and this permission notice appear in supporting
10
* documentation, and that the name of the author(s) not be used in
11
* advertising or publicity pertaining to distribution of the software without
12
* specific, written prior permission. The authors make no
13
* representations about the suitability of this software for any purpose. It
14
* is provided "as is" without express or implied warranty.
15
*
16
* THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18
* EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22
* PERFORMANCE OF THIS SOFTWARE.
23
*/
24
25
#ifndef _FONTCONFIG_H_
26
#define _FONTCONFIG_H_
27
28
#include <sys/types.h>
29
#include <sys/stat.h>
30
#include <stdarg.h>
31
#include <limits.h>
32
33
#if defined(__GNUC__) && (__GNUC__ >= 4)
34
#define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0)))
35
#else
36
#define FC_ATTRIBUTE_SENTINEL(x)
37
#endif
38
39
#ifndef FcPublic
40
#define FcPublic
41
#endif
42
43
typedef unsigned char FcChar8;
44
typedef unsigned short FcChar16;
45
typedef unsigned int FcChar32;
46
typedef int FcBool;
47
48
/*
49
* Current Fontconfig version number. This same number
50
* must appear in the fontconfig configure.in file. Yes,
51
* it'a a pain to synchronize version numbers like this.
52
*/
53
54
#define FC_MAJOR 2
55
#define FC_MINOR 12
56
#define FC_REVISION 6
57
58
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
59
60
/*
61
* Current font cache file format version
62
* This is appended to the cache files so that multiple
63
* versions of the library will peacefully coexist
64
*
65
* Change this value whenever the disk format for the cache file
66
* changes in any non-compatible way. Try to avoid such changes as
67
* it means multiple copies of the font information.
68
*/
69
70
#define FC_CACHE_VERSION_NUMBER 7
71
#define _FC_STRINGIFY_(s) #s
72
#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)
73
#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)
74
75
#define FcTrue 1
76
#define FcFalse 0
77
78
#define FC_FAMILY "family" /* String */
79
#define FC_STYLE "style" /* String */
80
#define FC_SLANT "slant" /* Int */
81
#define FC_WEIGHT "weight" /* Int */
82
#define FC_SIZE "size" /* Range (double) */
83
#define FC_ASPECT "aspect" /* Double */
84
#define FC_PIXEL_SIZE "pixelsize" /* Double */
85
#define FC_SPACING "spacing" /* Int */
86
#define FC_FOUNDRY "foundry" /* String */
87
#define FC_ANTIALIAS "antialias" /* Bool (depends) */
88
#define FC_HINTING "hinting" /* Bool (true) */
89
#define FC_HINT_STYLE "hintstyle" /* Int */
90
#define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */
91
#define FC_AUTOHINT "autohint" /* Bool (false) */
92
/* FC_GLOBAL_ADVANCE is deprecated. this is simply ignored on freetype 2.4.5 or later */
93
#define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */
94
#define FC_WIDTH "width" /* Int */
95
#define FC_FILE "file" /* String */
96
#define FC_INDEX "index" /* Int */
97
#define FC_FT_FACE "ftface" /* FT_Face */
98
#define FC_RASTERIZER "rasterizer" /* String (deprecated) */
99
#define FC_OUTLINE "outline" /* Bool */
100
#define FC_SCALABLE "scalable" /* Bool */
101
#define FC_COLOR "color" /* Bool */
102
#define FC_SCALE "scale" /* double (deprecated) */
103
#define FC_SYMBOL "symbol" /* Bool */
104
#define FC_DPI "dpi" /* double */
105
#define FC_RGBA "rgba" /* Int */
106
#define FC_MINSPACE "minspace" /* Bool use minimum line spacing */
107
#define FC_SOURCE "source" /* String (deprecated) */
108
#define FC_CHARSET "charset" /* CharSet */
109
#define FC_LANG "lang" /* String RFC 3066 langs */
110
#define FC_FONTVERSION "fontversion" /* Int from 'head' table */
111
#define FC_FULLNAME "fullname" /* String */
112
#define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */
113
#define FC_STYLELANG "stylelang" /* String RFC 3066 langs */
114
#define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */
115
#define FC_CAPABILITY "capability" /* String */
116
#define FC_FONTFORMAT "fontformat" /* String */
117
#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/
118
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
119
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
120
#define FC_LCD_FILTER "lcdfilter" /* Int */
121
#define FC_FONT_FEATURES "fontfeatures" /* String */
122
#define FC_NAMELANG "namelang" /* String RFC 3866 langs */
123
#define FC_PRGNAME "prgname" /* String */
124
#define FC_HASH "hash" /* String (deprecated) */
125
#define FC_POSTSCRIPT_NAME "postscriptname" /* String */
126
127
#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
128
#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
129
#define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
130
131
/* Adjust outline rasterizer */
132
#define FC_CHARWIDTH "charwidth" /* Int */
133
#define FC_CHAR_WIDTH FC_CHARWIDTH
134
#define FC_CHAR_HEIGHT "charheight"/* Int */
135
#define FC_MATRIX "matrix" /* FcMatrix */
136
137
#define FC_WEIGHT_THIN 0
138
#define FC_WEIGHT_EXTRALIGHT 40
139
#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
140
#define FC_WEIGHT_LIGHT 50
141
#define FC_WEIGHT_DEMILIGHT 55
142
#define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT
143
#define FC_WEIGHT_BOOK 75
144
#define FC_WEIGHT_REGULAR 80
145
#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
146
#define FC_WEIGHT_MEDIUM 100
147
#define FC_WEIGHT_DEMIBOLD 180
148
#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
149
#define FC_WEIGHT_BOLD 200
150
#define FC_WEIGHT_EXTRABOLD 205
151
#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
152
#define FC_WEIGHT_BLACK 210
153
#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
154
#define FC_WEIGHT_EXTRABLACK 215
155
#define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
156
157
#define FC_SLANT_ROMAN 0
158
#define FC_SLANT_ITALIC 100
159
#define FC_SLANT_OBLIQUE 110
160
161
#define FC_WIDTH_ULTRACONDENSED 50
162
#define FC_WIDTH_EXTRACONDENSED 63
163
#define FC_WIDTH_CONDENSED 75
164
#define FC_WIDTH_SEMICONDENSED 87
165
#define FC_WIDTH_NORMAL 100
166
#define FC_WIDTH_SEMIEXPANDED 113
167
#define FC_WIDTH_EXPANDED 125
168
#define FC_WIDTH_EXTRAEXPANDED 150
169
#define FC_WIDTH_ULTRAEXPANDED 200
170
171
#define FC_PROPORTIONAL 0
172
#define FC_DUAL 90
173
#define FC_MONO 100
174
#define FC_CHARCELL 110
175
176
/* sub-pixel order */
177
#define FC_RGBA_UNKNOWN 0
178
#define FC_RGBA_RGB 1
179
#define FC_RGBA_BGR 2
180
#define FC_RGBA_VRGB 3
181
#define FC_RGBA_VBGR 4
182
#define FC_RGBA_NONE 5
183
184
/* hinting style */
185
#define FC_HINT_NONE 0
186
#define FC_HINT_SLIGHT 1
187
#define FC_HINT_MEDIUM 2
188
#define FC_HINT_FULL 3
189
190
/* LCD filter */
191
#define FC_LCD_NONE 0
192
#define FC_LCD_DEFAULT 1
193
#define FC_LCD_LIGHT 2
194
#define FC_LCD_LEGACY 3
195
196
typedef enum _FcType {
197
FcTypeUnknown = -1,
198
FcTypeVoid,
199
FcTypeInteger,
200
FcTypeDouble,
201
FcTypeString,
202
FcTypeBool,
203
FcTypeMatrix,
204
FcTypeCharSet,
205
FcTypeFTFace,
206
FcTypeLangSet,
207
FcTypeRange
208
} FcType;
209
210
typedef struct _FcMatrix {
211
double xx, xy, yx, yy;
212
} FcMatrix;
213
214
#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
215
(m)->xy = (m)->yx = 0)
216
217
/*
218
* A data structure to represent the available glyphs in a font.
219
* This is represented as a sparse boolean btree.
220
*/
221
222
typedef struct _FcCharSet FcCharSet;
223
224
typedef struct _FcObjectType {
225
char *object;
226
FcType type;
227
} FcObjectType;
228
229
typedef struct _FcConstant {
230
const FcChar8 *name;
231
const char *object;
232
int value;
233
} FcConstant;
234
235
typedef enum _FcResult {
236
FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
237
FcResultOutOfMemory
238
} FcResult;
239
240
typedef enum _FcValueBinding {
241
FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame,
242
/* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */
243
FcValueBindingEnd = INT_MAX
244
} FcValueBinding;
245
246
typedef struct _FcPattern FcPattern;
247
248
typedef struct _FcLangSet FcLangSet;
249
250
typedef struct _FcRange FcRange;
251
252
typedef struct _FcValue {
253
FcType type;
254
union {
255
const FcChar8 *s;
256
int i;
257
FcBool b;
258
double d;
259
const FcMatrix *m;
260
const FcCharSet *c;
261
void *f;
262
const FcLangSet *l;
263
const FcRange *r;
264
} u;
265
} FcValue;
266
267
typedef struct _FcFontSet {
268
int nfont;
269
int sfont;
270
FcPattern **fonts;
271
} FcFontSet;
272
273
typedef struct _FcObjectSet {
274
int nobject;
275
int sobject;
276
const char **objects;
277
} FcObjectSet;
278
279
typedef enum _FcMatchKind {
280
FcMatchPattern, FcMatchFont, FcMatchScan
281
} FcMatchKind;
282
283
typedef enum _FcLangResult {
284
FcLangEqual = 0,
285
FcLangDifferentCountry = 1,
286
FcLangDifferentTerritory = 1,
287
FcLangDifferentLang = 2
288
} FcLangResult;
289
290
typedef enum _FcSetName {
291
FcSetSystem = 0,
292
FcSetApplication = 1
293
} FcSetName;
294
295
typedef struct _FcAtomic FcAtomic;
296
297
#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
298
#define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
299
#define _FCFUNCPROTOEND }
300
#else
301
#define _FCFUNCPROTOBEGIN
302
#define _FCFUNCPROTOEND
303
#endif
304
305
typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
306
307
typedef struct _FcConfig FcConfig;
308
309
typedef struct _FcGlobalCache FcFileCache;
310
311
typedef struct _FcBlanks FcBlanks;
312
313
typedef struct _FcStrList FcStrList;
314
315
typedef struct _FcStrSet FcStrSet;
316
317
typedef struct _FcCache FcCache;
318
319
_FCFUNCPROTOBEGIN
320
321
/* fcblanks.c */
322
FcPublic FcBlanks *
323
FcBlanksCreate (void);
324
325
FcPublic void
326
FcBlanksDestroy (FcBlanks *b);
327
328
FcPublic FcBool
329
FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);
330
331
FcPublic FcBool
332
FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
333
334
/* fccache.c */
335
336
FcPublic const FcChar8 *
337
FcCacheDir(const FcCache *c);
338
339
FcPublic FcFontSet *
340
FcCacheCopySet(const FcCache *c);
341
342
FcPublic const FcChar8 *
343
FcCacheSubdir (const FcCache *c, int i);
344
345
FcPublic int
346
FcCacheNumSubdir (const FcCache *c);
347
348
FcPublic int
349
FcCacheNumFont (const FcCache *c);
350
351
FcPublic FcBool
352
FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);
353
354
FcPublic FcBool
355
FcDirCacheValid (const FcChar8 *cache_file);
356
357
FcPublic FcBool
358
FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose);
359
360
FcPublic void
361
FcCacheCreateTagFile (const FcConfig *config);
362
363
/* fccfg.c */
364
FcPublic FcChar8 *
365
FcConfigHome (void);
366
367
FcPublic FcBool
368
FcConfigEnableHome (FcBool enable);
369
370
FcPublic FcChar8 *
371
FcConfigFilename (const FcChar8 *url);
372
373
FcPublic FcConfig *
374
FcConfigCreate (void);
375
376
FcPublic FcConfig *
377
FcConfigReference (FcConfig *config);
378
379
FcPublic void
380
FcConfigDestroy (FcConfig *config);
381
382
FcPublic FcBool
383
FcConfigSetCurrent (FcConfig *config);
384
385
FcPublic FcConfig *
386
FcConfigGetCurrent (void);
387
388
FcPublic FcBool
389
FcConfigUptoDate (FcConfig *config);
390
391
FcPublic FcBool
392
FcConfigBuildFonts (FcConfig *config);
393
394
FcPublic FcStrList *
395
FcConfigGetFontDirs (FcConfig *config);
396
397
FcPublic FcStrList *
398
FcConfigGetConfigDirs (FcConfig *config);
399
400
FcPublic FcStrList *
401
FcConfigGetConfigFiles (FcConfig *config);
402
403
FcPublic FcChar8 *
404
FcConfigGetCache (FcConfig *config);
405
406
FcPublic FcBlanks *
407
FcConfigGetBlanks (FcConfig *config);
408
409
FcPublic FcStrList *
410
FcConfigGetCacheDirs (const FcConfig *config);
411
412
FcPublic int
413
FcConfigGetRescanInterval (FcConfig *config);
414
415
FcPublic FcBool
416
FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);
417
418
FcPublic FcFontSet *
419
FcConfigGetFonts (FcConfig *config,
420
FcSetName set);
421
422
FcPublic FcBool
423
FcConfigAppFontAddFile (FcConfig *config,
424
const FcChar8 *file);
425
426
FcPublic FcBool
427
FcConfigAppFontAddDir (FcConfig *config,
428
const FcChar8 *dir);
429
430
FcPublic void
431
FcConfigAppFontClear (FcConfig *config);
432
433
FcPublic FcBool
434
FcConfigSubstituteWithPat (FcConfig *config,
435
FcPattern *p,
436
FcPattern *p_pat,
437
FcMatchKind kind);
438
439
FcPublic FcBool
440
FcConfigSubstitute (FcConfig *config,
441
FcPattern *p,
442
FcMatchKind kind);
443
444
FcPublic const FcChar8 *
445
FcConfigGetSysRoot (const FcConfig *config);
446
447
FcPublic void
448
FcConfigSetSysRoot (FcConfig *config,
449
const FcChar8 *sysroot);
450
451
/* fccharset.c */
452
FcPublic FcCharSet*
453
FcCharSetCreate (void);
454
455
/* deprecated alias for FcCharSetCreate */
456
FcPublic FcCharSet *
457
FcCharSetNew (void);
458
459
FcPublic void
460
FcCharSetDestroy (FcCharSet *fcs);
461
462
FcPublic FcBool
463
FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
464
465
FcPublic FcBool
466
FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4);
467
468
FcPublic FcCharSet*
469
FcCharSetCopy (FcCharSet *src);
470
471
FcPublic FcBool
472
FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);
473
474
FcPublic FcCharSet*
475
FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);
476
477
FcPublic FcCharSet*
478
FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
479
480
FcPublic FcCharSet*
481
FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
482
483
FcPublic FcBool
484
FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);
485
486
FcPublic FcBool
487
FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
488
489
FcPublic FcChar32
490
FcCharSetCount (const FcCharSet *a);
491
492
FcPublic FcChar32
493
FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);
494
495
FcPublic FcChar32
496
FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);
497
498
FcPublic FcBool
499
FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
500
501
#define FC_CHARSET_MAP_SIZE (256/32)
502
#define FC_CHARSET_DONE ((FcChar32) -1)
503
504
FcPublic FcChar32
505
FcCharSetFirstPage (const FcCharSet *a,
506
FcChar32 map[FC_CHARSET_MAP_SIZE],
507
FcChar32 *next);
508
509
FcPublic FcChar32
510
FcCharSetNextPage (const FcCharSet *a,
511
FcChar32 map[FC_CHARSET_MAP_SIZE],
512
FcChar32 *next);
513
514
/*
515
* old coverage API, rather hard to use correctly
516
*/
517
518
FcPublic FcChar32
519
FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result);
520
521
/* fcdbg.c */
522
FcPublic void
523
FcValuePrint (const FcValue v);
524
525
FcPublic void
526
FcPatternPrint (const FcPattern *p);
527
528
FcPublic void
529
FcFontSetPrint (const FcFontSet *s);
530
531
/* fcdefault.c */
532
FcPublic FcStrSet *
533
FcGetDefaultLangs (void);
534
535
FcPublic void
536
FcDefaultSubstitute (FcPattern *pattern);
537
538
/* fcdir.c */
539
FcPublic FcBool
540
FcFileIsDir (const FcChar8 *file);
541
542
FcPublic FcBool
543
FcFileScan (FcFontSet *set,
544
FcStrSet *dirs,
545
FcFileCache *cache,
546
FcBlanks *blanks,
547
const FcChar8 *file,
548
FcBool force);
549
550
FcPublic FcBool
551
FcDirScan (FcFontSet *set,
552
FcStrSet *dirs,
553
FcFileCache *cache,
554
FcBlanks *blanks,
555
const FcChar8 *dir,
556
FcBool force);
557
558
FcPublic FcBool
559
FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
560
561
FcPublic FcCache *
562
FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
563
564
FcPublic FcCache *
565
FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
566
567
FcPublic FcCache *
568
FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
569
570
FcPublic FcCache *
571
FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);
572
573
FcPublic void
574
FcDirCacheUnload (FcCache *cache);
575
576
/* fcfreetype.c */
577
FcPublic FcPattern *
578
FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count);
579
580
/* fcfs.c */
581
582
FcPublic FcFontSet *
583
FcFontSetCreate (void);
584
585
FcPublic void
586
FcFontSetDestroy (FcFontSet *s);
587
588
FcPublic FcBool
589
FcFontSetAdd (FcFontSet *s, FcPattern *font);
590
591
/* fcinit.c */
592
FcPublic FcConfig *
593
FcInitLoadConfig (void);
594
595
FcPublic FcConfig *
596
FcInitLoadConfigAndFonts (void);
597
598
FcPublic FcBool
599
FcInit (void);
600
601
FcPublic void
602
FcFini (void);
603
604
FcPublic int
605
FcGetVersion (void);
606
607
FcPublic FcBool
608
FcInitReinitialize (void);
609
610
FcPublic FcBool
611
FcInitBringUptoDate (void);
612
613
/* fclang.c */
614
FcPublic FcStrSet *
615
FcGetLangs (void);
616
617
FcPublic FcChar8 *
618
FcLangNormalize (const FcChar8 *lang);
619
620
FcPublic const FcCharSet *
621
FcLangGetCharSet (const FcChar8 *lang);
622
623
FcPublic FcLangSet*
624
FcLangSetCreate (void);
625
626
FcPublic void
627
FcLangSetDestroy (FcLangSet *ls);
628
629
FcPublic FcLangSet*
630
FcLangSetCopy (const FcLangSet *ls);
631
632
FcPublic FcBool
633
FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
634
635
FcPublic FcBool
636
FcLangSetDel (FcLangSet *ls, const FcChar8 *lang);
637
638
FcPublic FcLangResult
639
FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
640
641
FcPublic FcLangResult
642
FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);
643
644
FcPublic FcBool
645
FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);
646
647
FcPublic FcBool
648
FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
649
650
FcPublic FcChar32
651
FcLangSetHash (const FcLangSet *ls);
652
653
FcPublic FcStrSet *
654
FcLangSetGetLangs (const FcLangSet *ls);
655
656
FcPublic FcLangSet *
657
FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);
658
659
FcPublic FcLangSet *
660
FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);
661
662
/* fclist.c */
663
FcPublic FcObjectSet *
664
FcObjectSetCreate (void);
665
666
FcPublic FcBool
667
FcObjectSetAdd (FcObjectSet *os, const char *object);
668
669
FcPublic void
670
FcObjectSetDestroy (FcObjectSet *os);
671
672
FcPublic FcObjectSet *
673
FcObjectSetVaBuild (const char *first, va_list va);
674
675
FcPublic FcObjectSet *
676
FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0);
677
678
FcPublic FcFontSet *
679
FcFontSetList (FcConfig *config,
680
FcFontSet **sets,
681
int nsets,
682
FcPattern *p,
683
FcObjectSet *os);
684
685
FcPublic FcFontSet *
686
FcFontList (FcConfig *config,
687
FcPattern *p,
688
FcObjectSet *os);
689
690
/* fcatomic.c */
691
692
FcPublic FcAtomic *
693
FcAtomicCreate (const FcChar8 *file);
694
695
FcPublic FcBool
696
FcAtomicLock (FcAtomic *atomic);
697
698
FcPublic FcChar8 *
699
FcAtomicNewFile (FcAtomic *atomic);
700
701
FcPublic FcChar8 *
702
FcAtomicOrigFile (FcAtomic *atomic);
703
704
FcPublic FcBool
705
FcAtomicReplaceOrig (FcAtomic *atomic);
706
707
FcPublic void
708
FcAtomicDeleteNew (FcAtomic *atomic);
709
710
FcPublic void
711
FcAtomicUnlock (FcAtomic *atomic);
712
713
FcPublic void
714
FcAtomicDestroy (FcAtomic *atomic);
715
716
/* fcmatch.c */
717
FcPublic FcPattern *
718
FcFontSetMatch (FcConfig *config,
719
FcFontSet **sets,
720
int nsets,
721
FcPattern *p,
722
FcResult *result);
723
724
FcPublic FcPattern *
725
FcFontMatch (FcConfig *config,
726
FcPattern *p,
727
FcResult *result);
728
729
FcPublic FcPattern *
730
FcFontRenderPrepare (FcConfig *config,
731
FcPattern *pat,
732
FcPattern *font);
733
734
FcPublic FcFontSet *
735
FcFontSetSort (FcConfig *config,
736
FcFontSet **sets,
737
int nsets,
738
FcPattern *p,
739
FcBool trim,
740
FcCharSet **csp,
741
FcResult *result);
742
743
FcPublic FcFontSet *
744
FcFontSort (FcConfig *config,
745
FcPattern *p,
746
FcBool trim,
747
FcCharSet **csp,
748
FcResult *result);
749
750
FcPublic void
751
FcFontSetSortDestroy (FcFontSet *fs);
752
753
/* fcmatrix.c */
754
FcPublic FcMatrix *
755
FcMatrixCopy (const FcMatrix *mat);
756
757
FcPublic FcBool
758
FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);
759
760
FcPublic void
761
FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);
762
763
FcPublic void
764
FcMatrixRotate (FcMatrix *m, double c, double s);
765
766
FcPublic void
767
FcMatrixScale (FcMatrix *m, double sx, double sy);
768
769
FcPublic void
770
FcMatrixShear (FcMatrix *m, double sh, double sv);
771
772
/* fcname.c */
773
774
/* Deprecated. Does nothing. Returns FcFalse. */
775
FcPublic FcBool
776
FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);
777
778
/* Deprecated. Does nothing. Returns FcFalse. */
779
FcPublic FcBool
780
FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);
781
782
FcPublic const FcObjectType *
783
FcNameGetObjectType (const char *object);
784
785
/* Deprecated. Does nothing. Returns FcFalse. */
786
FcPublic FcBool
787
FcNameRegisterConstants (const FcConstant *consts, int nconsts);
788
789
/* Deprecated. Does nothing. Returns FcFalse. */
790
FcPublic FcBool
791
FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
792
793
FcPublic const FcConstant *
794
FcNameGetConstant (const FcChar8 *string);
795
796
FcPublic FcBool
797
FcNameConstant (const FcChar8 *string, int *result);
798
799
FcPublic FcPattern *
800
FcNameParse (const FcChar8 *name);
801
802
FcPublic FcChar8 *
803
FcNameUnparse (FcPattern *pat);
804
805
/* fcpat.c */
806
FcPublic FcPattern *
807
FcPatternCreate (void);
808
809
FcPublic FcPattern *
810
FcPatternDuplicate (const FcPattern *p);
811
812
FcPublic void
813
FcPatternReference (FcPattern *p);
814
815
FcPublic FcPattern *
816
FcPatternFilter (FcPattern *p, const FcObjectSet *os);
817
818
FcPublic void
819
FcValueDestroy (FcValue v);
820
821
FcPublic FcBool
822
FcValueEqual (FcValue va, FcValue vb);
823
824
FcPublic FcValue
825
FcValueSave (FcValue v);
826
827
FcPublic void
828
FcPatternDestroy (FcPattern *p);
829
830
FcPublic FcBool
831
FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
832
833
FcPublic FcBool
834
FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
835
836
FcPublic FcChar32
837
FcPatternHash (const FcPattern *p);
838
839
FcPublic FcBool
840
FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
841
842
FcPublic FcBool
843
FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
844
845
FcPublic FcResult
846
FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
847
848
FcPublic FcResult
849
FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b);
850
851
FcPublic FcBool
852
FcPatternDel (FcPattern *p, const char *object);
853
854
FcPublic FcBool
855
FcPatternRemove (FcPattern *p, const char *object, int id);
856
857
FcPublic FcBool
858
FcPatternAddInteger (FcPattern *p, const char *object, int i);
859
860
FcPublic FcBool
861
FcPatternAddDouble (FcPattern *p, const char *object, double d);
862
863
FcPublic FcBool
864
FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);
865
866
FcPublic FcBool
867
FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);
868
869
FcPublic FcBool
870
FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);
871
872
FcPublic FcBool
873
FcPatternAddBool (FcPattern *p, const char *object, FcBool b);
874
875
FcPublic FcBool
876
FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
877
878
FcPublic FcBool
879
FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r);
880
881
FcPublic FcResult
882
FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
883
884
FcPublic FcResult
885
FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
886
887
FcPublic FcResult
888
FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
889
890
FcPublic FcResult
891
FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
892
893
FcPublic FcResult
894
FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
895
896
FcPublic FcResult
897
FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
898
899
FcPublic FcResult
900
FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
901
902
FcPublic FcResult
903
FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);
904
905
FcPublic FcPattern *
906
FcPatternVaBuild (FcPattern *p, va_list va);
907
908
FcPublic FcPattern *
909
FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
910
911
FcPublic FcChar8 *
912
FcPatternFormat (FcPattern *pat, const FcChar8 *format);
913
914
/* fcrange.c */
915
FcPublic FcRange *
916
FcRangeCreateDouble (double begin, double end);
917
918
FcPublic FcRange *
919
FcRangeCreateInteger (FcChar32 begin, FcChar32 end);
920
921
FcPublic void
922
FcRangeDestroy (FcRange *range);
923
924
FcPublic FcRange *
925
FcRangeCopy (const FcRange *r);
926
927
FcPublic FcBool
928
FcRangeGetDouble(const FcRange *range, double *begin, double *end);
929
930
/* fcweight.c */
931
932
FcPublic int
933
FcWeightFromOpenType (int ot_weight);
934
935
FcPublic int
936
FcWeightToOpenType (int fc_weight);
937
938
/* fcstr.c */
939
940
FcPublic FcChar8 *
941
FcStrCopy (const FcChar8 *s);
942
943
FcPublic FcChar8 *
944
FcStrCopyFilename (const FcChar8 *s);
945
946
FcPublic FcChar8 *
947
FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
948
949
FcPublic void
950
FcStrFree (FcChar8 *s);
951
952
/* These are ASCII only, suitable only for pattern element names */
953
#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))
954
#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))
955
#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
956
957
FcPublic FcChar8 *
958
FcStrDowncase (const FcChar8 *s);
959
960
FcPublic int
961
FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
962
963
FcPublic int
964
FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
965
966
FcPublic const FcChar8 *
967
FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
968
969
FcPublic const FcChar8 *
970
FcStrStr (const FcChar8 *s1, const FcChar8 *s2);
971
972
FcPublic int
973
FcUtf8ToUcs4 (const FcChar8 *src_orig,
974
FcChar32 *dst,
975
int len);
976
977
FcPublic FcBool
978
FcUtf8Len (const FcChar8 *string,
979
int len,
980
int *nchar,
981
int *wchar);
982
983
#define FC_UTF8_MAX_LEN 6
984
985
FcPublic int
986
FcUcs4ToUtf8 (FcChar32 ucs4,
987
FcChar8 dest[FC_UTF8_MAX_LEN]);
988
989
FcPublic int
990
FcUtf16ToUcs4 (const FcChar8 *src_orig,
991
FcEndian endian,
992
FcChar32 *dst,
993
int len); /* in bytes */
994
995
FcPublic FcBool
996
FcUtf16Len (const FcChar8 *string,
997
FcEndian endian,
998
int len, /* in bytes */
999
int *nchar,
1000
int *wchar);
1001
1002
FcPublic FcChar8 *
1003
FcStrDirname (const FcChar8 *file);
1004
1005
FcPublic FcChar8 *
1006
FcStrBasename (const FcChar8 *file);
1007
1008
FcPublic FcStrSet *
1009
FcStrSetCreate (void);
1010
1011
FcPublic FcBool
1012
FcStrSetMember (FcStrSet *set, const FcChar8 *s);
1013
1014
FcPublic FcBool
1015
FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
1016
1017
FcPublic FcBool
1018
FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
1019
1020
FcPublic FcBool
1021
FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
1022
1023
FcPublic FcBool
1024
FcStrSetDel (FcStrSet *set, const FcChar8 *s);
1025
1026
FcPublic void
1027
FcStrSetDestroy (FcStrSet *set);
1028
1029
FcPublic FcStrList *
1030
FcStrListCreate (FcStrSet *set);
1031
1032
FcPublic void
1033
FcStrListFirst (FcStrList *list);
1034
1035
FcPublic FcChar8 *
1036
FcStrListNext (FcStrList *list);
1037
1038
FcPublic void
1039
FcStrListDone (FcStrList *list);
1040
1041
/* fcxml.c */
1042
FcPublic FcBool
1043
FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
1044
1045
FcPublic FcBool
1046
FcConfigParseAndLoadFromMemory (FcConfig *config,
1047
const FcChar8 *buffer,
1048
FcBool complain);
1049
1050
_FCFUNCPROTOEND
1051
1052
#undef FC_ATTRIBUTE_SENTINEL
1053
1054
1055
#ifndef _FCINT_H_
1056
1057
/*
1058
* Deprecated functions are placed here to help users fix their code without
1059
* digging through documentation
1060
*/
1061
1062
#define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
1063
#define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
1064
1065
#endif
1066
1067
#endif /* _FONTCONFIG_H_ */
1068
1069