File indexing completed on 2025-01-18 09:57:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #ifndef _FONTCONFIG_H_
0026 #define _FONTCONFIG_H_
0027
0028 #include <sys/types.h>
0029 #include <sys/stat.h>
0030 #include <stdarg.h>
0031 #include <limits.h>
0032
0033 #if defined(__GNUC__) && (__GNUC__ >= 4)
0034 #define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0)))
0035 #else
0036 #define FC_ATTRIBUTE_SENTINEL(x)
0037 #endif
0038
0039 #ifndef FcPublic
0040 #define FcPublic
0041 #endif
0042
0043 typedef unsigned char FcChar8;
0044 typedef unsigned short FcChar16;
0045 typedef unsigned int FcChar32;
0046 typedef int FcBool;
0047
0048
0049
0050
0051
0052
0053
0054 #define FC_MAJOR 2
0055 #define FC_MINOR 15
0056 #define FC_REVISION 0
0057
0058 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070 #define FC_CACHE_VERSION_NUMBER 9
0071 #define _FC_STRINGIFY_(s) #s
0072 #define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)
0073 #define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)
0074
0075 #define FcFalse 0
0076 #define FcTrue 1
0077 #define FcDontCare 2
0078
0079 #define FC_FAMILY "family"
0080 #define FC_STYLE "style"
0081 #define FC_SLANT "slant"
0082 #define FC_WEIGHT "weight"
0083 #define FC_SIZE "size"
0084 #define FC_ASPECT "aspect"
0085 #define FC_PIXEL_SIZE "pixelsize"
0086 #define FC_SPACING "spacing"
0087 #define FC_FOUNDRY "foundry"
0088 #define FC_ANTIALIAS "antialias"
0089 #define FC_HINTING "hinting"
0090 #define FC_HINT_STYLE "hintstyle"
0091 #define FC_VERTICAL_LAYOUT "verticallayout"
0092 #define FC_AUTOHINT "autohint"
0093
0094 #define FC_GLOBAL_ADVANCE "globaladvance"
0095 #define FC_WIDTH "width"
0096 #define FC_FILE "file"
0097 #define FC_INDEX "index"
0098 #define FC_FT_FACE "ftface"
0099 #define FC_RASTERIZER "rasterizer"
0100 #define FC_OUTLINE "outline"
0101 #define FC_SCALABLE "scalable"
0102 #define FC_COLOR "color"
0103 #define FC_VARIABLE "variable"
0104 #define FC_SCALE "scale"
0105 #define FC_SYMBOL "symbol"
0106 #define FC_DPI "dpi"
0107 #define FC_RGBA "rgba"
0108 #define FC_MINSPACE "minspace"
0109 #define FC_SOURCE "source"
0110 #define FC_CHARSET "charset"
0111 #define FC_LANG "lang"
0112 #define FC_FONTVERSION "fontversion"
0113 #define FC_FULLNAME "fullname"
0114 #define FC_FAMILYLANG "familylang"
0115 #define FC_STYLELANG "stylelang"
0116 #define FC_FULLNAMELANG "fullnamelang"
0117 #define FC_CAPABILITY "capability"
0118 #define FC_FONTFORMAT "fontformat"
0119 #define FC_EMBOLDEN "embolden"
0120 #define FC_EMBEDDED_BITMAP "embeddedbitmap"
0121 #define FC_DECORATIVE "decorative"
0122 #define FC_LCD_FILTER "lcdfilter"
0123 #define FC_FONT_FEATURES "fontfeatures"
0124 #define FC_FONT_VARIATIONS "fontvariations"
0125 #define FC_NAMELANG "namelang"
0126 #define FC_PRGNAME "prgname"
0127 #define FC_HASH "hash"
0128 #define FC_POSTSCRIPT_NAME "postscriptname"
0129 #define FC_FONT_HAS_HINT "fonthashint"
0130 #define FC_ORDER "order"
0131 #define FC_DESKTOP_NAME "desktop"
0132 #define FC_NAMED_INSTANCE "namedinstance"
0133 #define FC_FONT_WRAPPER "fontwrapper"
0134
0135 #define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
0136 #define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
0137 #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
0138
0139
0140 #define FC_CHARWIDTH "charwidth"
0141 #define FC_CHAR_WIDTH FC_CHARWIDTH
0142 #define FC_CHAR_HEIGHT "charheight"
0143 #define FC_MATRIX "matrix"
0144
0145 #define FC_WEIGHT_THIN 0
0146 #define FC_WEIGHT_EXTRALIGHT 40
0147 #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
0148 #define FC_WEIGHT_LIGHT 50
0149 #define FC_WEIGHT_DEMILIGHT 55
0150 #define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT
0151 #define FC_WEIGHT_BOOK 75
0152 #define FC_WEIGHT_REGULAR 80
0153 #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
0154 #define FC_WEIGHT_MEDIUM 100
0155 #define FC_WEIGHT_DEMIBOLD 180
0156 #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
0157 #define FC_WEIGHT_BOLD 200
0158 #define FC_WEIGHT_EXTRABOLD 205
0159 #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
0160 #define FC_WEIGHT_BLACK 210
0161 #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
0162 #define FC_WEIGHT_EXTRABLACK 215
0163 #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
0164
0165 #define FC_SLANT_ROMAN 0
0166 #define FC_SLANT_ITALIC 100
0167 #define FC_SLANT_OBLIQUE 110
0168
0169 #define FC_WIDTH_ULTRACONDENSED 50
0170 #define FC_WIDTH_EXTRACONDENSED 63
0171 #define FC_WIDTH_CONDENSED 75
0172 #define FC_WIDTH_SEMICONDENSED 87
0173 #define FC_WIDTH_NORMAL 100
0174 #define FC_WIDTH_SEMIEXPANDED 113
0175 #define FC_WIDTH_EXPANDED 125
0176 #define FC_WIDTH_EXTRAEXPANDED 150
0177 #define FC_WIDTH_ULTRAEXPANDED 200
0178
0179 #define FC_PROPORTIONAL 0
0180 #define FC_DUAL 90
0181 #define FC_MONO 100
0182 #define FC_CHARCELL 110
0183
0184
0185 #define FC_RGBA_UNKNOWN 0
0186 #define FC_RGBA_RGB 1
0187 #define FC_RGBA_BGR 2
0188 #define FC_RGBA_VRGB 3
0189 #define FC_RGBA_VBGR 4
0190 #define FC_RGBA_NONE 5
0191
0192
0193 #define FC_HINT_NONE 0
0194 #define FC_HINT_SLIGHT 1
0195 #define FC_HINT_MEDIUM 2
0196 #define FC_HINT_FULL 3
0197
0198
0199 #define FC_LCD_NONE 0
0200 #define FC_LCD_DEFAULT 1
0201 #define FC_LCD_LIGHT 2
0202 #define FC_LCD_LEGACY 3
0203
0204 typedef enum _FcType {
0205 FcTypeUnknown = -1,
0206 FcTypeVoid,
0207 FcTypeInteger,
0208 FcTypeDouble,
0209 FcTypeString,
0210 FcTypeBool,
0211 FcTypeMatrix,
0212 FcTypeCharSet,
0213 FcTypeFTFace,
0214 FcTypeLangSet,
0215 FcTypeRange
0216 } FcType;
0217
0218 typedef struct _FcMatrix {
0219 double xx, xy, yx, yy;
0220 } FcMatrix;
0221
0222 #define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
0223 (m)->xy = (m)->yx = 0)
0224
0225
0226
0227
0228
0229
0230 typedef struct _FcCharSet FcCharSet;
0231
0232 typedef struct _FcObjectType {
0233 char *object;
0234 FcType type;
0235 } FcObjectType;
0236
0237 typedef struct _FcConstant {
0238 const FcChar8 *name;
0239 const char *object;
0240 int value;
0241 } FcConstant;
0242
0243 typedef enum _FcResult {
0244 FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
0245 FcResultOutOfMemory
0246 } FcResult;
0247
0248 typedef enum _FcValueBinding {
0249 FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame,
0250
0251 FcValueBindingEnd = INT_MAX
0252 } FcValueBinding;
0253
0254 typedef struct _FcPattern FcPattern;
0255
0256 typedef struct _FcPatternIter {
0257 void *dummy1;
0258 void *dummy2;
0259 } FcPatternIter;
0260
0261 typedef struct _FcLangSet FcLangSet;
0262
0263 typedef struct _FcRange FcRange;
0264
0265 typedef struct _FcValue {
0266 FcType type;
0267 union {
0268 const FcChar8 *s;
0269 int i;
0270 FcBool b;
0271 double d;
0272 const FcMatrix *m;
0273 const FcCharSet *c;
0274 void *f;
0275 const FcLangSet *l;
0276 const FcRange *r;
0277 } u;
0278 } FcValue;
0279
0280 typedef struct _FcFontSet {
0281 int nfont;
0282 int sfont;
0283 FcPattern **fonts;
0284 } FcFontSet;
0285
0286 typedef struct _FcObjectSet {
0287 int nobject;
0288 int sobject;
0289 const char **objects;
0290 } FcObjectSet;
0291
0292 typedef enum _FcMatchKind {
0293 FcMatchPattern, FcMatchFont, FcMatchScan,
0294 FcMatchKindEnd,
0295 FcMatchKindBegin = FcMatchPattern
0296 } FcMatchKind;
0297
0298 typedef enum _FcLangResult {
0299 FcLangEqual = 0,
0300 FcLangDifferentCountry = 1,
0301 FcLangDifferentTerritory = 1,
0302 FcLangDifferentLang = 2
0303 } FcLangResult;
0304
0305 typedef enum _FcSetName {
0306 FcSetSystem = 0,
0307 FcSetApplication = 1
0308 } FcSetName;
0309
0310 typedef struct _FcConfigFileInfoIter {
0311 void *dummy1;
0312 void *dummy2;
0313 void *dummy3;
0314 } FcConfigFileInfoIter;
0315
0316 typedef struct _FcAtomic FcAtomic;
0317
0318 #if defined(__cplusplus) || defined(c_plusplus)
0319 #define _FCFUNCPROTOBEGIN extern "C" {
0320 #define _FCFUNCPROTOEND }
0321 #else
0322 #define _FCFUNCPROTOBEGIN
0323 #define _FCFUNCPROTOEND
0324 #endif
0325
0326 typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
0327
0328 typedef struct _FcConfig FcConfig;
0329
0330 typedef struct _FcGlobalCache FcFileCache;
0331
0332 typedef struct _FcBlanks FcBlanks;
0333
0334 typedef struct _FcStrList FcStrList;
0335
0336 typedef struct _FcStrSet FcStrSet;
0337
0338 typedef struct _FcCache FcCache;
0339
0340 _FCFUNCPROTOBEGIN
0341
0342
0343 FcPublic FcBlanks *
0344 FcBlanksCreate (void);
0345
0346 FcPublic void
0347 FcBlanksDestroy (FcBlanks *b);
0348
0349 FcPublic FcBool
0350 FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);
0351
0352 FcPublic FcBool
0353 FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
0354
0355
0356
0357 FcPublic const FcChar8 *
0358 FcCacheDir(const FcCache *c);
0359
0360 FcPublic FcFontSet *
0361 FcCacheCopySet(const FcCache *c);
0362
0363 FcPublic const FcChar8 *
0364 FcCacheSubdir (const FcCache *c, int i);
0365
0366 FcPublic int
0367 FcCacheNumSubdir (const FcCache *c);
0368
0369 FcPublic int
0370 FcCacheNumFont (const FcCache *c);
0371
0372 FcPublic FcBool
0373 FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);
0374
0375 FcPublic FcBool
0376 FcDirCacheValid (const FcChar8 *cache_file);
0377
0378 FcPublic FcBool
0379 FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose);
0380
0381 FcPublic void
0382 FcCacheCreateTagFile (FcConfig *config);
0383
0384 FcPublic FcBool
0385 FcDirCacheCreateUUID (FcChar8 *dir,
0386 FcBool force,
0387 FcConfig *config);
0388
0389 FcPublic FcBool
0390 FcDirCacheDeleteUUID (const FcChar8 *dir,
0391 FcConfig *config);
0392
0393
0394 FcPublic FcChar8 *
0395 FcConfigHome (void);
0396
0397 FcPublic FcBool
0398 FcConfigEnableHome (FcBool enable);
0399
0400 FcPublic FcChar8 *
0401 FcConfigGetFilename (FcConfig *config,
0402 const FcChar8 *url);
0403
0404 FcPublic FcChar8 *
0405 FcConfigFilename (const FcChar8 *url);
0406
0407 FcPublic FcConfig *
0408 FcConfigCreate (void);
0409
0410 FcPublic FcConfig *
0411 FcConfigReference (FcConfig *config);
0412
0413 FcPublic void
0414 FcConfigDestroy (FcConfig *config);
0415
0416 FcPublic FcBool
0417 FcConfigSetCurrent (FcConfig *config);
0418
0419 FcPublic FcConfig *
0420 FcConfigGetCurrent (void);
0421
0422 FcPublic FcBool
0423 FcConfigUptoDate (FcConfig *config);
0424
0425 FcPublic FcBool
0426 FcConfigBuildFonts (FcConfig *config);
0427
0428 FcPublic FcStrList *
0429 FcConfigGetFontDirs (FcConfig *config);
0430
0431 FcPublic FcStrList *
0432 FcConfigGetConfigDirs (FcConfig *config);
0433
0434 FcPublic FcStrList *
0435 FcConfigGetConfigFiles (FcConfig *config);
0436
0437 FcPublic FcChar8 *
0438 FcConfigGetCache (FcConfig *config);
0439
0440 FcPublic FcBlanks *
0441 FcConfigGetBlanks (FcConfig *config);
0442
0443 FcPublic FcStrList *
0444 FcConfigGetCacheDirs (FcConfig *config);
0445
0446 FcPublic int
0447 FcConfigGetRescanInterval (FcConfig *config);
0448
0449 FcPublic FcBool
0450 FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);
0451
0452 FcPublic FcFontSet *
0453 FcConfigGetFonts (FcConfig *config,
0454 FcSetName set);
0455
0456 FcPublic FcBool
0457 FcConfigAppFontAddFile (FcConfig *config,
0458 const FcChar8 *file);
0459
0460 FcPublic FcBool
0461 FcConfigAppFontAddDir (FcConfig *config,
0462 const FcChar8 *dir);
0463
0464 FcPublic void
0465 FcConfigAppFontClear (FcConfig *config);
0466
0467 FcPublic FcBool
0468 FcConfigSubstituteWithPat (FcConfig *config,
0469 FcPattern *p,
0470 FcPattern *p_pat,
0471 FcMatchKind kind);
0472
0473 FcPublic FcBool
0474 FcConfigSubstitute (FcConfig *config,
0475 FcPattern *p,
0476 FcMatchKind kind);
0477
0478 FcPublic const FcChar8 *
0479 FcConfigGetSysRoot (const FcConfig *config);
0480
0481 FcPublic void
0482 FcConfigSetSysRoot (FcConfig *config,
0483 const FcChar8 *sysroot);
0484
0485 FcPublic void
0486 FcConfigFileInfoIterInit (FcConfig *config,
0487 FcConfigFileInfoIter *iter);
0488
0489 FcPublic FcBool
0490 FcConfigFileInfoIterNext (FcConfig *config,
0491 FcConfigFileInfoIter *iter);
0492
0493 FcPublic FcBool
0494 FcConfigFileInfoIterGet (FcConfig *config,
0495 FcConfigFileInfoIter *iter,
0496 FcChar8 **name,
0497 FcChar8 **description,
0498 FcBool *enabled);
0499
0500
0501 FcPublic FcCharSet*
0502 FcCharSetCreate (void);
0503
0504
0505 FcPublic FcCharSet *
0506 FcCharSetNew (void);
0507
0508 FcPublic void
0509 FcCharSetDestroy (FcCharSet *fcs);
0510
0511 FcPublic FcBool
0512 FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
0513
0514 FcPublic FcBool
0515 FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4);
0516
0517 FcPublic FcCharSet*
0518 FcCharSetCopy (FcCharSet *src);
0519
0520 FcPublic FcBool
0521 FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);
0522
0523 FcPublic FcCharSet*
0524 FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);
0525
0526 FcPublic FcCharSet*
0527 FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
0528
0529 FcPublic FcCharSet*
0530 FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
0531
0532 FcPublic FcBool
0533 FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);
0534
0535 FcPublic FcBool
0536 FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
0537
0538 FcPublic FcChar32
0539 FcCharSetCount (const FcCharSet *a);
0540
0541 FcPublic FcChar32
0542 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);
0543
0544 FcPublic FcChar32
0545 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);
0546
0547 FcPublic FcBool
0548 FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
0549
0550 #define FC_CHARSET_MAP_SIZE (256/32)
0551 #define FC_CHARSET_DONE ((FcChar32) -1)
0552
0553 FcPublic FcChar32
0554 FcCharSetFirstPage (const FcCharSet *a,
0555 FcChar32 map[FC_CHARSET_MAP_SIZE],
0556 FcChar32 *next);
0557
0558 FcPublic FcChar32
0559 FcCharSetNextPage (const FcCharSet *a,
0560 FcChar32 map[FC_CHARSET_MAP_SIZE],
0561 FcChar32 *next);
0562
0563
0564
0565
0566
0567 FcPublic FcChar32
0568 FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result);
0569
0570
0571 FcPublic void
0572 FcValuePrint (const FcValue v);
0573
0574 FcPublic void
0575 FcPatternPrint (const FcPattern *p);
0576
0577 FcPublic void
0578 FcFontSetPrint (const FcFontSet *s);
0579
0580
0581 FcPublic FcStrSet *
0582 FcGetDefaultLangs (void);
0583
0584 FcPublic void
0585 FcDefaultSubstitute (FcPattern *pattern);
0586
0587
0588 FcPublic FcBool
0589 FcFileIsDir (const FcChar8 *file);
0590
0591 FcPublic FcBool
0592 FcFileScan (FcFontSet *set,
0593 FcStrSet *dirs,
0594 FcFileCache *cache,
0595 FcBlanks *blanks,
0596 const FcChar8 *file,
0597 FcBool force);
0598
0599 FcPublic FcBool
0600 FcDirScan (FcFontSet *set,
0601 FcStrSet *dirs,
0602 FcFileCache *cache,
0603 FcBlanks *blanks,
0604 const FcChar8 *dir,
0605 FcBool force);
0606
0607 FcPublic FcBool
0608 FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
0609
0610 FcPublic FcCache *
0611 FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
0612
0613 FcPublic FcCache *
0614 FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
0615
0616 FcPublic FcCache *
0617 FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
0618
0619 FcPublic FcCache *
0620 FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);
0621
0622 FcPublic void
0623 FcDirCacheUnload (FcCache *cache);
0624
0625
0626 FcPublic FcPattern *
0627 FcFreeTypeQuery (const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count);
0628
0629 FcPublic unsigned int
0630 FcFreeTypeQueryAll(const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count, FcFontSet *set);
0631
0632
0633
0634 FcPublic FcFontSet *
0635 FcFontSetCreate (void);
0636
0637 FcPublic void
0638 FcFontSetDestroy (FcFontSet *s);
0639
0640 FcPublic FcBool
0641 FcFontSetAdd (FcFontSet *s, FcPattern *font);
0642
0643
0644 FcPublic FcConfig *
0645 FcInitLoadConfig (void);
0646
0647 FcPublic FcConfig *
0648 FcInitLoadConfigAndFonts (void);
0649
0650 FcPublic FcBool
0651 FcInit (void);
0652
0653 FcPublic void
0654 FcFini (void);
0655
0656 FcPublic int
0657 FcGetVersion (void);
0658
0659 FcPublic FcBool
0660 FcInitReinitialize (void);
0661
0662 FcPublic FcBool
0663 FcInitBringUptoDate (void);
0664
0665
0666 FcPublic FcStrSet *
0667 FcGetLangs (void);
0668
0669 FcPublic FcChar8 *
0670 FcLangNormalize (const FcChar8 *lang);
0671
0672 FcPublic const FcCharSet *
0673 FcLangGetCharSet (const FcChar8 *lang);
0674
0675 FcPublic FcLangSet*
0676 FcLangSetCreate (void);
0677
0678 FcPublic void
0679 FcLangSetDestroy (FcLangSet *ls);
0680
0681 FcPublic FcLangSet*
0682 FcLangSetCopy (const FcLangSet *ls);
0683
0684 FcPublic FcBool
0685 FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
0686
0687 FcPublic FcBool
0688 FcLangSetDel (FcLangSet *ls, const FcChar8 *lang);
0689
0690 FcPublic FcLangResult
0691 FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
0692
0693 FcPublic FcLangResult
0694 FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);
0695
0696 FcPublic FcBool
0697 FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);
0698
0699 FcPublic FcBool
0700 FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
0701
0702 FcPublic FcChar32
0703 FcLangSetHash (const FcLangSet *ls);
0704
0705 FcPublic FcStrSet *
0706 FcLangSetGetLangs (const FcLangSet *ls);
0707
0708 FcPublic FcLangSet *
0709 FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);
0710
0711 FcPublic FcLangSet *
0712 FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);
0713
0714
0715 FcPublic FcObjectSet *
0716 FcObjectSetCreate (void);
0717
0718 FcPublic FcBool
0719 FcObjectSetAdd (FcObjectSet *os, const char *object);
0720
0721 FcPublic void
0722 FcObjectSetDestroy (FcObjectSet *os);
0723
0724 FcPublic FcObjectSet *
0725 FcObjectSetVaBuild (const char *first, va_list va);
0726
0727 FcPublic FcObjectSet *
0728 FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0);
0729
0730 FcPublic FcFontSet *
0731 FcFontSetList (FcConfig *config,
0732 FcFontSet **sets,
0733 int nsets,
0734 FcPattern *p,
0735 FcObjectSet *os);
0736
0737 FcPublic FcFontSet *
0738 FcFontList (FcConfig *config,
0739 FcPattern *p,
0740 FcObjectSet *os);
0741
0742
0743
0744 FcPublic FcAtomic *
0745 FcAtomicCreate (const FcChar8 *file);
0746
0747 FcPublic FcBool
0748 FcAtomicLock (FcAtomic *atomic);
0749
0750 FcPublic FcChar8 *
0751 FcAtomicNewFile (FcAtomic *atomic);
0752
0753 FcPublic FcChar8 *
0754 FcAtomicOrigFile (FcAtomic *atomic);
0755
0756 FcPublic FcBool
0757 FcAtomicReplaceOrig (FcAtomic *atomic);
0758
0759 FcPublic void
0760 FcAtomicDeleteNew (FcAtomic *atomic);
0761
0762 FcPublic void
0763 FcAtomicUnlock (FcAtomic *atomic);
0764
0765 FcPublic void
0766 FcAtomicDestroy (FcAtomic *atomic);
0767
0768
0769 FcPublic FcPattern *
0770 FcFontSetMatch (FcConfig *config,
0771 FcFontSet **sets,
0772 int nsets,
0773 FcPattern *p,
0774 FcResult *result);
0775
0776 FcPublic FcPattern *
0777 FcFontMatch (FcConfig *config,
0778 FcPattern *p,
0779 FcResult *result);
0780
0781 FcPublic FcPattern *
0782 FcFontRenderPrepare (FcConfig *config,
0783 FcPattern *pat,
0784 FcPattern *font);
0785
0786 FcPublic FcFontSet *
0787 FcFontSetSort (FcConfig *config,
0788 FcFontSet **sets,
0789 int nsets,
0790 FcPattern *p,
0791 FcBool trim,
0792 FcCharSet **csp,
0793 FcResult *result);
0794
0795 FcPublic FcFontSet *
0796 FcFontSort (FcConfig *config,
0797 FcPattern *p,
0798 FcBool trim,
0799 FcCharSet **csp,
0800 FcResult *result);
0801
0802 FcPublic void
0803 FcFontSetSortDestroy (FcFontSet *fs);
0804
0805
0806 FcPublic FcMatrix *
0807 FcMatrixCopy (const FcMatrix *mat);
0808
0809 FcPublic FcBool
0810 FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);
0811
0812 FcPublic void
0813 FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);
0814
0815 FcPublic void
0816 FcMatrixRotate (FcMatrix *m, double c, double s);
0817
0818 FcPublic void
0819 FcMatrixScale (FcMatrix *m, double sx, double sy);
0820
0821 FcPublic void
0822 FcMatrixShear (FcMatrix *m, double sh, double sv);
0823
0824
0825
0826
0827 FcPublic FcBool
0828 FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);
0829
0830
0831 FcPublic FcBool
0832 FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);
0833
0834 FcPublic const FcObjectType *
0835 FcNameGetObjectType (const char *object);
0836
0837
0838 FcPublic FcBool
0839 FcNameRegisterConstants (const FcConstant *consts, int nconsts);
0840
0841
0842 FcPublic FcBool
0843 FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
0844
0845 FcPublic const FcConstant *
0846 FcNameGetConstant (const FcChar8 *string);
0847
0848 FcPublic const FcConstant *
0849 FcNameGetConstantFor (const FcChar8 *string, const char *object);
0850
0851 FcPublic FcBool
0852 FcNameConstant (const FcChar8 *string, int *result);
0853
0854 FcPublic FcPattern *
0855 FcNameParse (const FcChar8 *name);
0856
0857 FcPublic FcChar8 *
0858 FcNameUnparse (FcPattern *pat);
0859
0860
0861 FcPublic FcPattern *
0862 FcPatternCreate (void);
0863
0864 FcPublic FcPattern *
0865 FcPatternDuplicate (const FcPattern *p);
0866
0867 FcPublic void
0868 FcPatternReference (FcPattern *p);
0869
0870 FcPublic FcPattern *
0871 FcPatternFilter (FcPattern *p, const FcObjectSet *os);
0872
0873 FcPublic void
0874 FcValueDestroy (FcValue v);
0875
0876 FcPublic FcBool
0877 FcValueEqual (FcValue va, FcValue vb);
0878
0879 FcPublic FcValue
0880 FcValueSave (FcValue v);
0881
0882 FcPublic void
0883 FcPatternDestroy (FcPattern *p);
0884
0885 int
0886 FcPatternObjectCount (const FcPattern *pat);
0887
0888 FcPublic FcBool
0889 FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
0890
0891 FcPublic FcBool
0892 FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
0893
0894 FcPublic FcChar32
0895 FcPatternHash (const FcPattern *p);
0896
0897 FcPublic FcBool
0898 FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
0899
0900 FcPublic FcBool
0901 FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
0902
0903 FcPublic FcResult
0904 FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
0905
0906 FcPublic FcResult
0907 FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b);
0908
0909 FcPublic FcBool
0910 FcPatternDel (FcPattern *p, const char *object);
0911
0912 FcPublic FcBool
0913 FcPatternRemove (FcPattern *p, const char *object, int id);
0914
0915 FcPublic FcBool
0916 FcPatternAddInteger (FcPattern *p, const char *object, int i);
0917
0918 FcPublic FcBool
0919 FcPatternAddDouble (FcPattern *p, const char *object, double d);
0920
0921 FcPublic FcBool
0922 FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);
0923
0924 FcPublic FcBool
0925 FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);
0926
0927 FcPublic FcBool
0928 FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);
0929
0930 FcPublic FcBool
0931 FcPatternAddBool (FcPattern *p, const char *object, FcBool b);
0932
0933 FcPublic FcBool
0934 FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
0935
0936 FcPublic FcBool
0937 FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r);
0938
0939 FcPublic FcResult
0940 FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
0941
0942 FcPublic FcResult
0943 FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
0944
0945 FcPublic FcResult
0946 FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
0947
0948 FcPublic FcResult
0949 FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
0950
0951 FcPublic FcResult
0952 FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
0953
0954 FcPublic FcResult
0955 FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
0956
0957 FcPublic FcResult
0958 FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
0959
0960 FcPublic FcResult
0961 FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);
0962
0963 FcPublic FcPattern *
0964 FcPatternVaBuild (FcPattern *p, va_list va);
0965
0966 FcPublic FcPattern *
0967 FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
0968
0969 FcPublic FcChar8 *
0970 FcPatternFormat (FcPattern *pat, const FcChar8 *format);
0971
0972
0973 FcPublic FcRange *
0974 FcRangeCreateDouble (double begin, double end);
0975
0976 FcPublic FcRange *
0977 FcRangeCreateInteger (FcChar32 begin, FcChar32 end);
0978
0979 FcPublic void
0980 FcRangeDestroy (FcRange *range);
0981
0982 FcPublic FcRange *
0983 FcRangeCopy (const FcRange *r);
0984
0985 FcPublic FcBool
0986 FcRangeGetDouble(const FcRange *range, double *begin, double *end);
0987
0988 FcPublic void
0989 FcPatternIterStart (const FcPattern *pat, FcPatternIter *iter);
0990
0991 FcPublic FcBool
0992 FcPatternIterNext (const FcPattern *pat, FcPatternIter *iter);
0993
0994 FcPublic FcBool
0995 FcPatternIterEqual (const FcPattern *p1, FcPatternIter *i1,
0996 const FcPattern *p2, FcPatternIter *i2);
0997
0998 FcPublic FcBool
0999 FcPatternFindIter (const FcPattern *pat, FcPatternIter *iter, const char *object);
1000
1001 FcPublic FcBool
1002 FcPatternIterIsValid (const FcPattern *pat, FcPatternIter *iter);
1003
1004 FcPublic const char *
1005 FcPatternIterGetObject (const FcPattern *pat, FcPatternIter *iter);
1006
1007 FcPublic int
1008 FcPatternIterValueCount (const FcPattern *pat, FcPatternIter *iter);
1009
1010 FcPublic FcResult
1011 FcPatternIterGetValue (const FcPattern *pat, FcPatternIter *iter, int id, FcValue *v, FcValueBinding *b);
1012
1013
1014
1015 FcPublic int
1016 FcWeightFromOpenType (int ot_weight);
1017
1018 FcPublic double
1019 FcWeightFromOpenTypeDouble (double ot_weight);
1020
1021 FcPublic int
1022 FcWeightToOpenType (int fc_weight);
1023
1024 FcPublic double
1025 FcWeightToOpenTypeDouble (double fc_weight);
1026
1027
1028
1029 FcPublic FcChar8 *
1030 FcStrCopy (const FcChar8 *s);
1031
1032 FcPublic FcChar8 *
1033 FcStrCopyFilename (const FcChar8 *s);
1034
1035 FcPublic FcChar8 *
1036 FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
1037
1038 FcPublic void
1039 FcStrFree (FcChar8 *s);
1040
1041
1042 #define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))
1043 #define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))
1044 #define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
1045
1046 FcPublic FcChar8 *
1047 FcStrDowncase (const FcChar8 *s);
1048
1049 FcPublic int
1050 FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
1051
1052 FcPublic int
1053 FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
1054
1055 FcPublic const FcChar8 *
1056 FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
1057
1058 FcPublic const FcChar8 *
1059 FcStrStr (const FcChar8 *s1, const FcChar8 *s2);
1060
1061 FcPublic int
1062 FcUtf8ToUcs4 (const FcChar8 *src_orig,
1063 FcChar32 *dst,
1064 int len);
1065
1066 FcPublic FcBool
1067 FcUtf8Len (const FcChar8 *string,
1068 int len,
1069 int *nchar,
1070 int *wchar);
1071
1072 #define FC_UTF8_MAX_LEN 6
1073
1074 FcPublic int
1075 FcUcs4ToUtf8 (FcChar32 ucs4,
1076 FcChar8 dest[FC_UTF8_MAX_LEN]);
1077
1078 FcPublic int
1079 FcUtf16ToUcs4 (const FcChar8 *src_orig,
1080 FcEndian endian,
1081 FcChar32 *dst,
1082 int len);
1083
1084 FcPublic FcBool
1085 FcUtf16Len (const FcChar8 *string,
1086 FcEndian endian,
1087 int len,
1088 int *nchar,
1089 int *wchar);
1090
1091 FcPublic FcChar8 *
1092 FcStrBuildFilename (const FcChar8 *path,
1093 ...);
1094
1095 FcPublic FcChar8 *
1096 FcStrDirname (const FcChar8 *file);
1097
1098 FcPublic FcChar8 *
1099 FcStrBasename (const FcChar8 *file);
1100
1101 FcPublic FcStrSet *
1102 FcStrSetCreate (void);
1103
1104 FcPublic FcBool
1105 FcStrSetMember (FcStrSet *set, const FcChar8 *s);
1106
1107 FcPublic FcBool
1108 FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
1109
1110 FcPublic FcBool
1111 FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
1112
1113 FcPublic FcBool
1114 FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
1115
1116 FcPublic FcBool
1117 FcStrSetDel (FcStrSet *set, const FcChar8 *s);
1118
1119 FcPublic void
1120 FcStrSetDestroy (FcStrSet *set);
1121
1122 FcPublic FcStrList *
1123 FcStrListCreate (FcStrSet *set);
1124
1125 FcPublic void
1126 FcStrListFirst (FcStrList *list);
1127
1128 FcPublic FcChar8 *
1129 FcStrListNext (FcStrList *list);
1130
1131 FcPublic void
1132 FcStrListDone (FcStrList *list);
1133
1134
1135 FcPublic FcBool
1136 FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
1137
1138 FcPublic FcBool
1139 FcConfigParseAndLoadFromMemory (FcConfig *config,
1140 const FcChar8 *buffer,
1141 FcBool complain);
1142
1143 _FCFUNCPROTOEND
1144
1145 #undef FC_ATTRIBUTE_SENTINEL
1146
1147
1148 #ifndef _FCINT_H_
1149
1150
1151
1152
1153
1154
1155 #define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
1156 #define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
1157
1158 #endif
1159
1160 #endif