Path: blob/master/thirdparty/linuxbsd_headers/fontconfig/fontconfig.h
9904 views
/*1* fontconfig/fontconfig/fontconfig.h2*3* Copyright © 2001 Keith Packard4*5* Permission to use, copy, modify, distribute, and sell this software and its6* documentation for any purpose is hereby granted without fee, provided that7* the above copyright notice appear in all copies and that both that8* copyright notice and this permission notice appear in supporting9* documentation, and that the name of the author(s) not be used in10* advertising or publicity pertaining to distribution of the software without11* specific, written prior permission. The authors make no12* representations about the suitability of this software for any purpose. It13* is provided "as is" without express or implied warranty.14*15* THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,16* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO17* EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR18* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,19* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER20* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR21* PERFORMANCE OF THIS SOFTWARE.22*/2324#ifndef _FONTCONFIG_H_25#define _FONTCONFIG_H_2627#include <sys/types.h>28#include <sys/stat.h>29#include <stdarg.h>30#include <limits.h>3132#if defined(__GNUC__) && (__GNUC__ >= 4)33#define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0)))34#else35#define FC_ATTRIBUTE_SENTINEL(x)36#endif3738#ifndef FcPublic39#define FcPublic40#endif4142typedef unsigned char FcChar8;43typedef unsigned short FcChar16;44typedef unsigned int FcChar32;45typedef int FcBool;4647/*48* Current Fontconfig version number. This same number49* must appear in the fontconfig configure.in file. Yes,50* it'a a pain to synchronize version numbers like this.51*/5253#define FC_MAJOR 254#define FC_MINOR 1255#define FC_REVISION 65657#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))5859/*60* Current font cache file format version61* This is appended to the cache files so that multiple62* versions of the library will peacefully coexist63*64* Change this value whenever the disk format for the cache file65* changes in any non-compatible way. Try to avoid such changes as66* it means multiple copies of the font information.67*/6869#define FC_CACHE_VERSION_NUMBER 770#define _FC_STRINGIFY_(s) #s71#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)72#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)7374#define FcTrue 175#define FcFalse 07677#define FC_FAMILY "family" /* String */78#define FC_STYLE "style" /* String */79#define FC_SLANT "slant" /* Int */80#define FC_WEIGHT "weight" /* Int */81#define FC_SIZE "size" /* Range (double) */82#define FC_ASPECT "aspect" /* Double */83#define FC_PIXEL_SIZE "pixelsize" /* Double */84#define FC_SPACING "spacing" /* Int */85#define FC_FOUNDRY "foundry" /* String */86#define FC_ANTIALIAS "antialias" /* Bool (depends) */87#define FC_HINTING "hinting" /* Bool (true) */88#define FC_HINT_STYLE "hintstyle" /* Int */89#define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */90#define FC_AUTOHINT "autohint" /* Bool (false) */91/* FC_GLOBAL_ADVANCE is deprecated. this is simply ignored on freetype 2.4.5 or later */92#define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */93#define FC_WIDTH "width" /* Int */94#define FC_FILE "file" /* String */95#define FC_INDEX "index" /* Int */96#define FC_FT_FACE "ftface" /* FT_Face */97#define FC_RASTERIZER "rasterizer" /* String (deprecated) */98#define FC_OUTLINE "outline" /* Bool */99#define FC_SCALABLE "scalable" /* Bool */100#define FC_COLOR "color" /* Bool */101#define FC_SCALE "scale" /* double (deprecated) */102#define FC_SYMBOL "symbol" /* Bool */103#define FC_DPI "dpi" /* double */104#define FC_RGBA "rgba" /* Int */105#define FC_MINSPACE "minspace" /* Bool use minimum line spacing */106#define FC_SOURCE "source" /* String (deprecated) */107#define FC_CHARSET "charset" /* CharSet */108#define FC_LANG "lang" /* String RFC 3066 langs */109#define FC_FONTVERSION "fontversion" /* Int from 'head' table */110#define FC_FULLNAME "fullname" /* String */111#define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */112#define FC_STYLELANG "stylelang" /* String RFC 3066 langs */113#define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */114#define FC_CAPABILITY "capability" /* String */115#define FC_FONTFORMAT "fontformat" /* String */116#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/117#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */118#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */119#define FC_LCD_FILTER "lcdfilter" /* Int */120#define FC_FONT_FEATURES "fontfeatures" /* String */121#define FC_NAMELANG "namelang" /* String RFC 3866 langs */122#define FC_PRGNAME "prgname" /* String */123#define FC_HASH "hash" /* String (deprecated) */124#define FC_POSTSCRIPT_NAME "postscriptname" /* String */125126#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION127#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION128#define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION129130/* Adjust outline rasterizer */131#define FC_CHARWIDTH "charwidth" /* Int */132#define FC_CHAR_WIDTH FC_CHARWIDTH133#define FC_CHAR_HEIGHT "charheight"/* Int */134#define FC_MATRIX "matrix" /* FcMatrix */135136#define FC_WEIGHT_THIN 0137#define FC_WEIGHT_EXTRALIGHT 40138#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT139#define FC_WEIGHT_LIGHT 50140#define FC_WEIGHT_DEMILIGHT 55141#define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT142#define FC_WEIGHT_BOOK 75143#define FC_WEIGHT_REGULAR 80144#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR145#define FC_WEIGHT_MEDIUM 100146#define FC_WEIGHT_DEMIBOLD 180147#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD148#define FC_WEIGHT_BOLD 200149#define FC_WEIGHT_EXTRABOLD 205150#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD151#define FC_WEIGHT_BLACK 210152#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK153#define FC_WEIGHT_EXTRABLACK 215154#define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK155156#define FC_SLANT_ROMAN 0157#define FC_SLANT_ITALIC 100158#define FC_SLANT_OBLIQUE 110159160#define FC_WIDTH_ULTRACONDENSED 50161#define FC_WIDTH_EXTRACONDENSED 63162#define FC_WIDTH_CONDENSED 75163#define FC_WIDTH_SEMICONDENSED 87164#define FC_WIDTH_NORMAL 100165#define FC_WIDTH_SEMIEXPANDED 113166#define FC_WIDTH_EXPANDED 125167#define FC_WIDTH_EXTRAEXPANDED 150168#define FC_WIDTH_ULTRAEXPANDED 200169170#define FC_PROPORTIONAL 0171#define FC_DUAL 90172#define FC_MONO 100173#define FC_CHARCELL 110174175/* sub-pixel order */176#define FC_RGBA_UNKNOWN 0177#define FC_RGBA_RGB 1178#define FC_RGBA_BGR 2179#define FC_RGBA_VRGB 3180#define FC_RGBA_VBGR 4181#define FC_RGBA_NONE 5182183/* hinting style */184#define FC_HINT_NONE 0185#define FC_HINT_SLIGHT 1186#define FC_HINT_MEDIUM 2187#define FC_HINT_FULL 3188189/* LCD filter */190#define FC_LCD_NONE 0191#define FC_LCD_DEFAULT 1192#define FC_LCD_LIGHT 2193#define FC_LCD_LEGACY 3194195typedef enum _FcType {196FcTypeUnknown = -1,197FcTypeVoid,198FcTypeInteger,199FcTypeDouble,200FcTypeString,201FcTypeBool,202FcTypeMatrix,203FcTypeCharSet,204FcTypeFTFace,205FcTypeLangSet,206FcTypeRange207} FcType;208209typedef struct _FcMatrix {210double xx, xy, yx, yy;211} FcMatrix;212213#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \214(m)->xy = (m)->yx = 0)215216/*217* A data structure to represent the available glyphs in a font.218* This is represented as a sparse boolean btree.219*/220221typedef struct _FcCharSet FcCharSet;222223typedef struct _FcObjectType {224char *object;225FcType type;226} FcObjectType;227228typedef struct _FcConstant {229const FcChar8 *name;230const char *object;231int value;232} FcConstant;233234typedef enum _FcResult {235FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,236FcResultOutOfMemory237} FcResult;238239typedef enum _FcValueBinding {240FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame,241/* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */242FcValueBindingEnd = INT_MAX243} FcValueBinding;244245typedef struct _FcPattern FcPattern;246247typedef struct _FcLangSet FcLangSet;248249typedef struct _FcRange FcRange;250251typedef struct _FcValue {252FcType type;253union {254const FcChar8 *s;255int i;256FcBool b;257double d;258const FcMatrix *m;259const FcCharSet *c;260void *f;261const FcLangSet *l;262const FcRange *r;263} u;264} FcValue;265266typedef struct _FcFontSet {267int nfont;268int sfont;269FcPattern **fonts;270} FcFontSet;271272typedef struct _FcObjectSet {273int nobject;274int sobject;275const char **objects;276} FcObjectSet;277278typedef enum _FcMatchKind {279FcMatchPattern, FcMatchFont, FcMatchScan280} FcMatchKind;281282typedef enum _FcLangResult {283FcLangEqual = 0,284FcLangDifferentCountry = 1,285FcLangDifferentTerritory = 1,286FcLangDifferentLang = 2287} FcLangResult;288289typedef enum _FcSetName {290FcSetSystem = 0,291FcSetApplication = 1292} FcSetName;293294typedef struct _FcAtomic FcAtomic;295296#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */297#define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */298#define _FCFUNCPROTOEND }299#else300#define _FCFUNCPROTOBEGIN301#define _FCFUNCPROTOEND302#endif303304typedef enum { FcEndianBig, FcEndianLittle } FcEndian;305306typedef struct _FcConfig FcConfig;307308typedef struct _FcGlobalCache FcFileCache;309310typedef struct _FcBlanks FcBlanks;311312typedef struct _FcStrList FcStrList;313314typedef struct _FcStrSet FcStrSet;315316typedef struct _FcCache FcCache;317318_FCFUNCPROTOBEGIN319320/* fcblanks.c */321FcPublic FcBlanks *322FcBlanksCreate (void);323324FcPublic void325FcBlanksDestroy (FcBlanks *b);326327FcPublic FcBool328FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);329330FcPublic FcBool331FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);332333/* fccache.c */334335FcPublic const FcChar8 *336FcCacheDir(const FcCache *c);337338FcPublic FcFontSet *339FcCacheCopySet(const FcCache *c);340341FcPublic const FcChar8 *342FcCacheSubdir (const FcCache *c, int i);343344FcPublic int345FcCacheNumSubdir (const FcCache *c);346347FcPublic int348FcCacheNumFont (const FcCache *c);349350FcPublic FcBool351FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);352353FcPublic FcBool354FcDirCacheValid (const FcChar8 *cache_file);355356FcPublic FcBool357FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose);358359FcPublic void360FcCacheCreateTagFile (const FcConfig *config);361362/* fccfg.c */363FcPublic FcChar8 *364FcConfigHome (void);365366FcPublic FcBool367FcConfigEnableHome (FcBool enable);368369FcPublic FcChar8 *370FcConfigFilename (const FcChar8 *url);371372FcPublic FcConfig *373FcConfigCreate (void);374375FcPublic FcConfig *376FcConfigReference (FcConfig *config);377378FcPublic void379FcConfigDestroy (FcConfig *config);380381FcPublic FcBool382FcConfigSetCurrent (FcConfig *config);383384FcPublic FcConfig *385FcConfigGetCurrent (void);386387FcPublic FcBool388FcConfigUptoDate (FcConfig *config);389390FcPublic FcBool391FcConfigBuildFonts (FcConfig *config);392393FcPublic FcStrList *394FcConfigGetFontDirs (FcConfig *config);395396FcPublic FcStrList *397FcConfigGetConfigDirs (FcConfig *config);398399FcPublic FcStrList *400FcConfigGetConfigFiles (FcConfig *config);401402FcPublic FcChar8 *403FcConfigGetCache (FcConfig *config);404405FcPublic FcBlanks *406FcConfigGetBlanks (FcConfig *config);407408FcPublic FcStrList *409FcConfigGetCacheDirs (const FcConfig *config);410411FcPublic int412FcConfigGetRescanInterval (FcConfig *config);413414FcPublic FcBool415FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);416417FcPublic FcFontSet *418FcConfigGetFonts (FcConfig *config,419FcSetName set);420421FcPublic FcBool422FcConfigAppFontAddFile (FcConfig *config,423const FcChar8 *file);424425FcPublic FcBool426FcConfigAppFontAddDir (FcConfig *config,427const FcChar8 *dir);428429FcPublic void430FcConfigAppFontClear (FcConfig *config);431432FcPublic FcBool433FcConfigSubstituteWithPat (FcConfig *config,434FcPattern *p,435FcPattern *p_pat,436FcMatchKind kind);437438FcPublic FcBool439FcConfigSubstitute (FcConfig *config,440FcPattern *p,441FcMatchKind kind);442443FcPublic const FcChar8 *444FcConfigGetSysRoot (const FcConfig *config);445446FcPublic void447FcConfigSetSysRoot (FcConfig *config,448const FcChar8 *sysroot);449450/* fccharset.c */451FcPublic FcCharSet*452FcCharSetCreate (void);453454/* deprecated alias for FcCharSetCreate */455FcPublic FcCharSet *456FcCharSetNew (void);457458FcPublic void459FcCharSetDestroy (FcCharSet *fcs);460461FcPublic FcBool462FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);463464FcPublic FcBool465FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4);466467FcPublic FcCharSet*468FcCharSetCopy (FcCharSet *src);469470FcPublic FcBool471FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);472473FcPublic FcCharSet*474FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);475476FcPublic FcCharSet*477FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);478479FcPublic FcCharSet*480FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);481482FcPublic FcBool483FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);484485FcPublic FcBool486FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);487488FcPublic FcChar32489FcCharSetCount (const FcCharSet *a);490491FcPublic FcChar32492FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);493494FcPublic FcChar32495FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);496497FcPublic FcBool498FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);499500#define FC_CHARSET_MAP_SIZE (256/32)501#define FC_CHARSET_DONE ((FcChar32) -1)502503FcPublic FcChar32504FcCharSetFirstPage (const FcCharSet *a,505FcChar32 map[FC_CHARSET_MAP_SIZE],506FcChar32 *next);507508FcPublic FcChar32509FcCharSetNextPage (const FcCharSet *a,510FcChar32 map[FC_CHARSET_MAP_SIZE],511FcChar32 *next);512513/*514* old coverage API, rather hard to use correctly515*/516517FcPublic FcChar32518FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result);519520/* fcdbg.c */521FcPublic void522FcValuePrint (const FcValue v);523524FcPublic void525FcPatternPrint (const FcPattern *p);526527FcPublic void528FcFontSetPrint (const FcFontSet *s);529530/* fcdefault.c */531FcPublic FcStrSet *532FcGetDefaultLangs (void);533534FcPublic void535FcDefaultSubstitute (FcPattern *pattern);536537/* fcdir.c */538FcPublic FcBool539FcFileIsDir (const FcChar8 *file);540541FcPublic FcBool542FcFileScan (FcFontSet *set,543FcStrSet *dirs,544FcFileCache *cache,545FcBlanks *blanks,546const FcChar8 *file,547FcBool force);548549FcPublic FcBool550FcDirScan (FcFontSet *set,551FcStrSet *dirs,552FcFileCache *cache,553FcBlanks *blanks,554const FcChar8 *dir,555FcBool force);556557FcPublic FcBool558FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);559560FcPublic FcCache *561FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);562563FcPublic FcCache *564FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);565566FcPublic FcCache *567FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);568569FcPublic FcCache *570FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);571572FcPublic void573FcDirCacheUnload (FcCache *cache);574575/* fcfreetype.c */576FcPublic FcPattern *577FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count);578579/* fcfs.c */580581FcPublic FcFontSet *582FcFontSetCreate (void);583584FcPublic void585FcFontSetDestroy (FcFontSet *s);586587FcPublic FcBool588FcFontSetAdd (FcFontSet *s, FcPattern *font);589590/* fcinit.c */591FcPublic FcConfig *592FcInitLoadConfig (void);593594FcPublic FcConfig *595FcInitLoadConfigAndFonts (void);596597FcPublic FcBool598FcInit (void);599600FcPublic void601FcFini (void);602603FcPublic int604FcGetVersion (void);605606FcPublic FcBool607FcInitReinitialize (void);608609FcPublic FcBool610FcInitBringUptoDate (void);611612/* fclang.c */613FcPublic FcStrSet *614FcGetLangs (void);615616FcPublic FcChar8 *617FcLangNormalize (const FcChar8 *lang);618619FcPublic const FcCharSet *620FcLangGetCharSet (const FcChar8 *lang);621622FcPublic FcLangSet*623FcLangSetCreate (void);624625FcPublic void626FcLangSetDestroy (FcLangSet *ls);627628FcPublic FcLangSet*629FcLangSetCopy (const FcLangSet *ls);630631FcPublic FcBool632FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);633634FcPublic FcBool635FcLangSetDel (FcLangSet *ls, const FcChar8 *lang);636637FcPublic FcLangResult638FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);639640FcPublic FcLangResult641FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);642643FcPublic FcBool644FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);645646FcPublic FcBool647FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);648649FcPublic FcChar32650FcLangSetHash (const FcLangSet *ls);651652FcPublic FcStrSet *653FcLangSetGetLangs (const FcLangSet *ls);654655FcPublic FcLangSet *656FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);657658FcPublic FcLangSet *659FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);660661/* fclist.c */662FcPublic FcObjectSet *663FcObjectSetCreate (void);664665FcPublic FcBool666FcObjectSetAdd (FcObjectSet *os, const char *object);667668FcPublic void669FcObjectSetDestroy (FcObjectSet *os);670671FcPublic FcObjectSet *672FcObjectSetVaBuild (const char *first, va_list va);673674FcPublic FcObjectSet *675FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0);676677FcPublic FcFontSet *678FcFontSetList (FcConfig *config,679FcFontSet **sets,680int nsets,681FcPattern *p,682FcObjectSet *os);683684FcPublic FcFontSet *685FcFontList (FcConfig *config,686FcPattern *p,687FcObjectSet *os);688689/* fcatomic.c */690691FcPublic FcAtomic *692FcAtomicCreate (const FcChar8 *file);693694FcPublic FcBool695FcAtomicLock (FcAtomic *atomic);696697FcPublic FcChar8 *698FcAtomicNewFile (FcAtomic *atomic);699700FcPublic FcChar8 *701FcAtomicOrigFile (FcAtomic *atomic);702703FcPublic FcBool704FcAtomicReplaceOrig (FcAtomic *atomic);705706FcPublic void707FcAtomicDeleteNew (FcAtomic *atomic);708709FcPublic void710FcAtomicUnlock (FcAtomic *atomic);711712FcPublic void713FcAtomicDestroy (FcAtomic *atomic);714715/* fcmatch.c */716FcPublic FcPattern *717FcFontSetMatch (FcConfig *config,718FcFontSet **sets,719int nsets,720FcPattern *p,721FcResult *result);722723FcPublic FcPattern *724FcFontMatch (FcConfig *config,725FcPattern *p,726FcResult *result);727728FcPublic FcPattern *729FcFontRenderPrepare (FcConfig *config,730FcPattern *pat,731FcPattern *font);732733FcPublic FcFontSet *734FcFontSetSort (FcConfig *config,735FcFontSet **sets,736int nsets,737FcPattern *p,738FcBool trim,739FcCharSet **csp,740FcResult *result);741742FcPublic FcFontSet *743FcFontSort (FcConfig *config,744FcPattern *p,745FcBool trim,746FcCharSet **csp,747FcResult *result);748749FcPublic void750FcFontSetSortDestroy (FcFontSet *fs);751752/* fcmatrix.c */753FcPublic FcMatrix *754FcMatrixCopy (const FcMatrix *mat);755756FcPublic FcBool757FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);758759FcPublic void760FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);761762FcPublic void763FcMatrixRotate (FcMatrix *m, double c, double s);764765FcPublic void766FcMatrixScale (FcMatrix *m, double sx, double sy);767768FcPublic void769FcMatrixShear (FcMatrix *m, double sh, double sv);770771/* fcname.c */772773/* Deprecated. Does nothing. Returns FcFalse. */774FcPublic FcBool775FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);776777/* Deprecated. Does nothing. Returns FcFalse. */778FcPublic FcBool779FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);780781FcPublic const FcObjectType *782FcNameGetObjectType (const char *object);783784/* Deprecated. Does nothing. Returns FcFalse. */785FcPublic FcBool786FcNameRegisterConstants (const FcConstant *consts, int nconsts);787788/* Deprecated. Does nothing. Returns FcFalse. */789FcPublic FcBool790FcNameUnregisterConstants (const FcConstant *consts, int nconsts);791792FcPublic const FcConstant *793FcNameGetConstant (const FcChar8 *string);794795FcPublic FcBool796FcNameConstant (const FcChar8 *string, int *result);797798FcPublic FcPattern *799FcNameParse (const FcChar8 *name);800801FcPublic FcChar8 *802FcNameUnparse (FcPattern *pat);803804/* fcpat.c */805FcPublic FcPattern *806FcPatternCreate (void);807808FcPublic FcPattern *809FcPatternDuplicate (const FcPattern *p);810811FcPublic void812FcPatternReference (FcPattern *p);813814FcPublic FcPattern *815FcPatternFilter (FcPattern *p, const FcObjectSet *os);816817FcPublic void818FcValueDestroy (FcValue v);819820FcPublic FcBool821FcValueEqual (FcValue va, FcValue vb);822823FcPublic FcValue824FcValueSave (FcValue v);825826FcPublic void827FcPatternDestroy (FcPattern *p);828829FcPublic FcBool830FcPatternEqual (const FcPattern *pa, const FcPattern *pb);831832FcPublic FcBool833FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);834835FcPublic FcChar32836FcPatternHash (const FcPattern *p);837838FcPublic FcBool839FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);840841FcPublic FcBool842FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);843844FcPublic FcResult845FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);846847FcPublic FcResult848FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b);849850FcPublic FcBool851FcPatternDel (FcPattern *p, const char *object);852853FcPublic FcBool854FcPatternRemove (FcPattern *p, const char *object, int id);855856FcPublic FcBool857FcPatternAddInteger (FcPattern *p, const char *object, int i);858859FcPublic FcBool860FcPatternAddDouble (FcPattern *p, const char *object, double d);861862FcPublic FcBool863FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);864865FcPublic FcBool866FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);867868FcPublic FcBool869FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);870871FcPublic FcBool872FcPatternAddBool (FcPattern *p, const char *object, FcBool b);873874FcPublic FcBool875FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);876877FcPublic FcBool878FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r);879880FcPublic FcResult881FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);882883FcPublic FcResult884FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);885886FcPublic FcResult887FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);888889FcPublic FcResult890FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);891892FcPublic FcResult893FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);894895FcPublic FcResult896FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);897898FcPublic FcResult899FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);900901FcPublic FcResult902FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);903904FcPublic FcPattern *905FcPatternVaBuild (FcPattern *p, va_list va);906907FcPublic FcPattern *908FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);909910FcPublic FcChar8 *911FcPatternFormat (FcPattern *pat, const FcChar8 *format);912913/* fcrange.c */914FcPublic FcRange *915FcRangeCreateDouble (double begin, double end);916917FcPublic FcRange *918FcRangeCreateInteger (FcChar32 begin, FcChar32 end);919920FcPublic void921FcRangeDestroy (FcRange *range);922923FcPublic FcRange *924FcRangeCopy (const FcRange *r);925926FcPublic FcBool927FcRangeGetDouble(const FcRange *range, double *begin, double *end);928929/* fcweight.c */930931FcPublic int932FcWeightFromOpenType (int ot_weight);933934FcPublic int935FcWeightToOpenType (int fc_weight);936937/* fcstr.c */938939FcPublic FcChar8 *940FcStrCopy (const FcChar8 *s);941942FcPublic FcChar8 *943FcStrCopyFilename (const FcChar8 *s);944945FcPublic FcChar8 *946FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);947948FcPublic void949FcStrFree (FcChar8 *s);950951/* These are ASCII only, suitable only for pattern element names */952#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))953#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))954#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))955956FcPublic FcChar8 *957FcStrDowncase (const FcChar8 *s);958959FcPublic int960FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);961962FcPublic int963FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);964965FcPublic const FcChar8 *966FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);967968FcPublic const FcChar8 *969FcStrStr (const FcChar8 *s1, const FcChar8 *s2);970971FcPublic int972FcUtf8ToUcs4 (const FcChar8 *src_orig,973FcChar32 *dst,974int len);975976FcPublic FcBool977FcUtf8Len (const FcChar8 *string,978int len,979int *nchar,980int *wchar);981982#define FC_UTF8_MAX_LEN 6983984FcPublic int985FcUcs4ToUtf8 (FcChar32 ucs4,986FcChar8 dest[FC_UTF8_MAX_LEN]);987988FcPublic int989FcUtf16ToUcs4 (const FcChar8 *src_orig,990FcEndian endian,991FcChar32 *dst,992int len); /* in bytes */993994FcPublic FcBool995FcUtf16Len (const FcChar8 *string,996FcEndian endian,997int len, /* in bytes */998int *nchar,999int *wchar);10001001FcPublic FcChar8 *1002FcStrDirname (const FcChar8 *file);10031004FcPublic FcChar8 *1005FcStrBasename (const FcChar8 *file);10061007FcPublic FcStrSet *1008FcStrSetCreate (void);10091010FcPublic FcBool1011FcStrSetMember (FcStrSet *set, const FcChar8 *s);10121013FcPublic FcBool1014FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);10151016FcPublic FcBool1017FcStrSetAdd (FcStrSet *set, const FcChar8 *s);10181019FcPublic FcBool1020FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);10211022FcPublic FcBool1023FcStrSetDel (FcStrSet *set, const FcChar8 *s);10241025FcPublic void1026FcStrSetDestroy (FcStrSet *set);10271028FcPublic FcStrList *1029FcStrListCreate (FcStrSet *set);10301031FcPublic void1032FcStrListFirst (FcStrList *list);10331034FcPublic FcChar8 *1035FcStrListNext (FcStrList *list);10361037FcPublic void1038FcStrListDone (FcStrList *list);10391040/* fcxml.c */1041FcPublic FcBool1042FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);10431044FcPublic FcBool1045FcConfigParseAndLoadFromMemory (FcConfig *config,1046const FcChar8 *buffer,1047FcBool complain);10481049_FCFUNCPROTOEND10501051#undef FC_ATTRIBUTE_SENTINEL105210531054#ifndef _FCINT_H_10551056/*1057* Deprecated functions are placed here to help users fix their code without1058* digging through documentation1059*/10601061#define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval1062#define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval10631064#endif10651066#endif /* _FONTCONFIG_H_ */106710681069