| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- {$mode objfpc}
- {$H+}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit libfontconfig;
- {$ENDIF FPC_DOTTEDUNITS}
- {
- Automatically converted by H2Pas 1.0.0 from fc.h
- The following command line parameters were used:
- -l
- libfontconfig.so
- -P
- -p
- -S
- -T
- -C
- -c
- fc.h
- }
- interface
- {$IFDEF FPC_DOTTEDUNITS}
- uses
- System.CTypes;
- {$ELSE FPC_DOTTEDUNITS}
- uses
- ctypes;
- {$ENDIF FPC_DOTTEDUNITS}
- Const
- {$ifndef darwin}
- DefaultLibName = 'libfontconfig.so';
- {$else}
- DefaultLibName = 'libfontconfig.dylib';
- {$endif}
- const
- FC_MAJOR = 2;
- FC_MINOR = 11;
- FC_REVISION = 94;
- FC_VERSION = ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION));
- FC_CACHE_VERSION_NUMBER = 6;
- FC_CACHE_VERSION = '6'; // Stringify of FC_CACHE_VERSION_NUMBER
- FcTrue = 1;
- FcFalse = 0;
- FC_FAMILY = 'family';
- FC_STYLE = 'style';
- FC_SLANT = 'slant';
- FC_WEIGHT = 'weight';
- FC_SIZE = 'size';
- FC_ASPECT = 'aspect';
- FC_PIXEL_SIZE = 'pixelsize';
- FC_SPACING = 'spacing';
- FC_FOUNDRY = 'foundry';
- FC_ANTIALIAS = 'antialias';
- FC_HINTING = 'hinting';
- FC_HINT_STYLE = 'hintstyle';
- FC_VERTICAL_LAYOUT = 'verticallayout';
- FC_AUTOHINT = 'autohint';
- FC_GLOBAL_ADVANCE = 'globaladvance';
- FC_WIDTH = 'width';
- FC_FILE = 'file';
- FC_INDEX = 'index';
- FC_FT_FACE = 'ftface';
- FC_RASTERIZER = 'rasterizer';
- FC_OUTLINE = 'outline';
- FC_SCALABLE = 'scalable';
- FC_COLOR = 'color';
- FC_SCALE = 'scale';
- FC_SYMBOL = 'symbol';
- FC_DPI = 'dpi';
- FC_RGBA = 'rgba';
- FC_MINSPACE = 'minspace';
- FC_SOURCE = 'source';
- FC_CHARSET = 'charset';
- FC_LANG = 'lang';
- FC_FONTVERSION = 'fontversion';
- FC_FULLNAME = 'fullname';
- FC_FAMILYLANG = 'familylang';
- FC_STYLELANG = 'stylelang';
- FC_FULLNAMELANG = 'fullnamelang';
- FC_CAPABILITY = 'capability';
- FC_FONTFORMAT = 'fontformat';
- FC_EMBOLDEN = 'embolden';
- FC_EMBEDDED_BITMAP = 'embeddedbitmap';
- FC_DECORATIVE = 'decorative';
- FC_LCD_FILTER = 'lcdfilter';
- FC_FONT_FEATURES = 'fontfeatures';
- FC_NAMELANG = 'namelang';
- FC_PRGNAME = 'prgname';
- FC_HASH = 'hash';
- FC_POSTSCRIPT_NAME = 'postscriptname';
- FC_CACHE_SUFFIX = '.cache-'+ FC_CACHE_VERSION;
- FC_DIR_CACHE_FILE = 'fonts.cache-' + FC_CACHE_VERSION;
- FC_USER_CACHE_FILE= '.fonts.cache-' + FC_CACHE_VERSION;
- FC_CHAR_WIDTH = 'charwidth';
- FC_CHAR_HEIGHT = 'charheight';
- FC_MATRIX = 'matrix';
- FC_WEIGHT_THIN = 0;
- FC_WEIGHT_EXTRALIGHT = 40;
- FC_WEIGHT_ULTRALIGHT = FC_WEIGHT_EXTRALIGHT;
- FC_WEIGHT_LIGHT = 50;
- FC_WEIGHT_DEMILIGHT = 55;
- FC_WEIGHT_SEMILIGHT = FC_WEIGHT_DEMILIGHT;
- FC_WEIGHT_BOOK = 75;
- FC_WEIGHT_REGULAR = 80;
- FC_WEIGHT_NORMAL = FC_WEIGHT_REGULAR;
- FC_WEIGHT_MEDIUM = 100;
- FC_WEIGHT_DEMIBOLD = 180;
- FC_WEIGHT_SEMIBOLD = FC_WEIGHT_DEMIBOLD;
- FC_WEIGHT_BOLD = 200;
- FC_WEIGHT_EXTRABOLD = 205;
- FC_WEIGHT_ULTRABOLD = FC_WEIGHT_EXTRABOLD;
- FC_WEIGHT_BLACK = 210;
- FC_WEIGHT_HEAVY = FC_WEIGHT_BLACK;
- FC_WEIGHT_EXTRABLACK = 215;
- FC_WEIGHT_ULTRABLACK = FC_WEIGHT_EXTRABLACK;
- FC_SLANT_ROMAN = 0;
- FC_SLANT_ITALIC = 100;
- FC_SLANT_OBLIQUE = 110;
- FC_WIDTH_ULTRACONDENSED = 50;
- FC_WIDTH_EXTRACONDENSED = 63;
- FC_WIDTH_CONDENSED = 75;
- FC_WIDTH_SEMICONDENSED = 87;
- FC_WIDTH_NORMAL = 100;
- FC_WIDTH_SEMIEXPANDED = 113;
- FC_WIDTH_EXPANDED = 125;
- FC_WIDTH_EXTRAEXPANDED = 150;
- FC_WIDTH_ULTRAEXPANDED = 200;
- FC_PROPORTIONAL = 0;
- FC_DUAL = 90;
- FC_MONO = 100;
- FC_CHARCELL = 110;
- FC_RGBA_UNKNOWN = 0;
- FC_RGBA_RGB = 1;
- FC_RGBA_BGR = 2;
- FC_RGBA_VRGB = 3;
- FC_RGBA_VBGR = 4;
- FC_RGBA_NONE = 5;
- FC_HINT_NONE = 0;
- FC_HINT_SLIGHT = 1;
- FC_HINT_MEDIUM = 2;
- FC_HINT_FULL = 3;
- FC_LCD_NONE = 0;
- FC_LCD_DEFAULT = 1;
- FC_LCD_LIGHT = 2;
- FC_LCD_LEGACY = 3;
- FC_UTF8_MAX_LEN = 6;
- {
- Automatically converted by H2Pas 1.0.0 from fc.h
- The following command line parameters were used:
- -l
- libfontconfig.so
- -P
- -p
- -S
- -T
- -C
- -c
- fc.h
- }
- { Pointers to basic pascal types, inserted by h2pas conversion program.}
- Type
- PLongint = ^Longint;
- PSmallInt = ^SmallInt;
- PByte = ^Byte;
- PWord = ^Word;
- PDWord = ^DWord;
- PDouble = ^Double;
-
- PStat = pointer;
- {$IFDEF FPC}
- {$PACKRECORDS C}
- {$ENDIF}
- PFcAtomic = ^TFcAtomic;
- TFCAtomic = record end;
- PPFcAtomic = ^PFcAtomic;
-
- PFcConfig = ^TFcConfig;
- TFcConfig = record end;
- PPFcConfig = ^PFcConfig;
- PFcFileCache = ^TFcFileCache;
- TFcFileCache = record end;
- PPFcFileCache = ^PFcFileCache;
- PFcBlanks = ^TFcBlanks;
- TFcBlanks = record end;
- PPFcBlanks = ^PFcBlanks;
- PFcPattern = ^TFcPattern;
- TFcPattern = record end;
- PPFcPattern = ^PFcPattern;
-
- PFcStrList = ^TFcStrList;
- TFcStrList = record end;
- PPFcStrList = ^PFcStrList;
-
- PFcStrSet = ^TFcStrSet;
- TFcStrSet = record end;
- PPFcStrSet = ^PFcStrSet;
- PFcCharSet = ^TFcCharSet;
- TFcCharSet = record end;
- PPFcCharSet = ^PFcCharSet;
-
- PFcLangSet = ^TFcLangSet;
- TFcLangSet = record end;
- PPFcLangSet = ^PFcLangSet;
- PFcRange = ^TFcRange;
- TFcRange = record end;
- PPFcRange = ^PFcRange;
-
- PFcCache = ^TFcCache;
- TFcCache = record end;
- PPFcCache = ^PFcCache;
- PFcChar8 = PAnsiChar;
- TFcChar8 = AnsiChar;
- PPFcChar8 = PPAnsiChar;
- PFcChar16 = PWideChar;
- TFcChar16 = WideChar;
- PPFcChar16 = ^PFcChar16;
- PFcChar32 = ^TFcChar32;
- TFcChar32 = cuint;
- PFcBool = ^TFcBool;
- TFcBool = cint;
- PFcType = ^TFcType;
- TFcType = (FcTypeUnknown := -(1),FcTypeVoid,FcTypeInteger,
- FcTypeDouble,FcTypeString,FcTypeBool,FcTypeMatrix,
- FcTypeCharSet,FcTypeFTFace,FcTypeLangSet,
- FcTypeRange);
- PFcMatrix = ^TFcMatrix;
- TFcMatrix = record
- xx : double;
- xy : double;
- yx : double;
- yy : double;
- end;
- PPFcMatrix = ^PFcMatrix;
- PFcObjectType = ^TFcObjectType;
- TFcObjectType = record
- _object : pcchar;
- _type : TFcType;
- end;
- PPFcObjectType = ^PFcObjectType;
- PFcConstant = ^TFcConstant;
- TFcConstant = record
- name : PFcChar8;
- _object : pcchar;
- value : cint;
- end;
- PPFcConstant = ^PFcConstant;
- PFcResult = ^TFcResult;
- TFcResult = (FcResultMatch,FcResultNoMatch,FcResultTypeMismatch, FcResultNoId,FcResultOutOfMemory);
- PFcValue = ^TFcValue;
- TFcValue = record
- _type : TFcType;
- u : record
- case longint of
- 0 : ( s : PFcChar8 );
- 1 : ( i : cint );
- 2 : ( b : TFcBool );
- 3 : ( d : double );
- 4 : ( m : PFcMatrix );
- 5 : ( c : PFcCharSet );
- 6 : ( f : pointer );
- 7 : ( l : PFcLangSet );
- 8 : ( r : PFcRange );
- end;
- end;
- PPFcValue = ^PFcValue;
-
- PFcFontSet = ^TFcFontSet;
- TFcFontSet = record
- nfont : cint;
- sfont : cint;
- fonts : ^PFcPattern;
- end;
- PPFcFontSet = ^PFcFontSet;
- PFcObjectSet = ^TFcObjectSet;
- TFcObjectSet = record
- nobject : cint;
- sobject : cint;
- objects : ^pcchar;
- end;
- PPFcObjectSet = ^PFcObjectSet;
-
- PFcMatchKind = ^TFcMatchKind;
- TFcMatchKind = (FcMatchPattern,FcMatchFont,FcMatchScan);
- PFcLangResult = ^TFcLangResult;
- TFcLangResult = (FcLangEqual := 0,FcLangDifferentCountry := 1,
- FcLangDifferentTerritory := 1,FcLangDifferentLang := 2);
- PFcSetName = ^TFcSetName;
- TFcSetName = (FcSetSystem := 0,FcSetApplication := 1);
- PFcEndian = ^TFcEndian;
- TFcEndian = (FcEndianBig,FcEndianLittle);
- TFcGlobalCache = TFcFileCache;
- TFcCharMap = array[0..7] of TFcChar32;
- TUTF8Array = array[0..5] of TFcChar8;
-
- var
- FcBlanksCreate : function:PFcBlanks;
- FcBlanksDestroy : procedure(b:PFcBlanks);
- FcBlanksAdd : function(b:PFcBlanks; ucs4:TFcChar32):TFcBool;
- FcBlanksIsMember : function(b:PFcBlanks; ucs4:TFcChar32):TFcBool;
- FcCacheDir : function(c:PFcCache):PFcChar8;
- FcCacheCopySet : function(c:PFcCache):PFcFontSet;
- FcCacheSubdir : function(c:PFcCache; i:cint):PFcChar8;
- FcCacheNumSubdir : function(c:PFcCache):cint;
- FcCacheNumFont : function(c:PFcCache):cint;
- FcDirCacheUnlink : function(dir:PFcChar8; config:PFcConfig):TFcBool;
- FcDirCacheValid : function(cache_file:PFcChar8):TFcBool;
- FcDirCacheClean : function(cache_dir:PFcChar8; verbose:TFcBool):TFcBool;
- FcCacheCreateTagFile : procedure(config:PFcConfig);
- FcConfigHome : function:PFcChar8;
- FcConfigEnableHome : function(enable:TFcBool):TFcBool;
- FcConfigFilename : function(url:PFcChar8):PFcChar8;
- FcConfigCreate : function:PFcConfig;
- FcConfigReference : function(config:PFcConfig):PFcConfig;
- FcConfigDestroy : procedure(config:PFcConfig);
- FcConfigSetCurrent : function(config:PFcConfig):TFcBool;
- FcConfigGetCurrent : function:PFcConfig;
- FcConfigUptoDate : function(config:PFcConfig):TFcBool;
- FcConfigBuildFonts : function(config:PFcConfig):TFcBool;
- FcConfigGetFontDirs : function(config:PFcConfig):PFcStrList;
- FcConfigGetConfigDirs : function(config:PFcConfig):PFcStrList;
- FcConfigGetConfigFiles : function(config:PFcConfig):PFcStrList;
- FcConfigGetCache : function(config:PFcConfig):PFcChar8;
- FcConfigGetBlanks : function(config:PFcConfig):PFcBlanks;
- FcConfigGetCacheDirs : function(config:PFcConfig):PFcStrList;
- FcConfigGetRescanInterval : function(config:PFcConfig):cint;
- FcConfigSetRescanInterval : function(config:PFcConfig; rescanInterval:cint):TFcBool;
- FcConfigGetFonts : function(config:PFcConfig; aset:TFcSetName):PFcFontSet;
- FcConfigAppFontAddFile : function(config:PFcConfig; afile:PFcChar8):TFcBool;
- FcConfigAppFontAddDir : function(config:PFcConfig; dir:PFcChar8):TFcBool;
- FcConfigAppFontClear : procedure(config:PFcConfig);
- FcConfigSubstituteWithPat : function(config:PFcConfig; p:PFcPattern; p_pat:PFcPattern; kind:TFcMatchKind):TFcBool;
- FcConfigSubstitute : function(config:PFcConfig; p:PFcPattern; kind:TFcMatchKind):TFcBool;
- FcConfigGetSysRoot : function(config:PFcConfig):PFcChar8;
- FcConfigSetSysRoot : procedure(config:PFcConfig; sysroot:PFcChar8);
- FcCharSetCreate : function:PFcCharSet;
- FcCharSetNew : function:PFcCharSet;
- FcCharSetDestroy : procedure(fcs:PFcCharSet);
- FcCharSetAddChar : function(fcs:PFcCharSet; ucs4:TFcChar32):TFcBool;
- FcCharSetDelChar : function(fcs:PFcCharSet; ucs4:TFcChar32):TFcBool;
- FcCharSetCopy : function(src:PFcCharSet):PFcCharSet;
- FcCharSetEqual : function(a:PFcCharSet; b:PFcCharSet):TFcBool;
- FcCharSetIntersect : function(a:PFcCharSet; b:PFcCharSet):PFcCharSet;
- FcCharSetUnion : function(a:PFcCharSet; b:PFcCharSet):PFcCharSet;
- FcCharSetSubtract : function(a:PFcCharSet; b:PFcCharSet):PFcCharSet;
- FcCharSetMerge : function(a:PFcCharSet; b:PFcCharSet; changed:PFcBool):TFcBool;
- FcCharSetHasChar : function(fcs:PFcCharSet; ucs4:TFcChar32):TFcBool;
- FcCharSetCount : function(a:PFcCharSet):TFcChar32;
- FcCharSetIntersectCount : function(a:PFcCharSet; b:PFcCharSet):TFcChar32;
- FcCharSetSubtractCount : function(a:PFcCharSet; b:PFcCharSet):TFcChar32;
- FcCharSetIsSubset : function(a:PFcCharSet; b:PFcCharSet):TFcBool;
- FcCharSetFirstPage : function(a:PFcCharSet; map:TFcCharMap; next:PFcChar32):TFcChar32;
- FcCharSetNextPage : function(a:PFcCharSet; map:TFcCharMap; next:PFcChar32):TFcChar32;
- FcCharSetCoverage : function(a:PFcCharSet; page:TFcChar32; result:PFcChar32):TFcChar32;
- FcValuePrint : procedure(v:TFcValue);
- FcPatternPrint : procedure(p:PFcPattern);
- FcFontSetPrint : procedure(s:PFcFontSet);
- FcGetDefaultLangs : function:PFcStrSet;
- FcDefaultSubstitute : procedure(pattern:PFcPattern);
- FcFileIsDir : function(afile:PFcChar8):TFcBool;
- FcFileScan : function(aset:PFcFontSet; dirs:PFcStrSet; cache:PFcFileCache; blanks:PFcBlanks; afile:PFcChar8;
- force:TFcBool):TFcBool;
- FcDirScan : function(aset:PFcFontSet; dirs:PFcStrSet; cache:PFcFileCache; blanks:PFcBlanks; dir:PFcChar8;
- force:TFcBool):TFcBool;
- FcDirSave : function(aset:PFcFontSet; dirs:PFcStrSet; dir:PFcChar8):TFcBool;
- FcDirCacheLoad : function(dir:PFcChar8; config:PFcConfig; cache_file:PPFcChar8):PFcCache;
- FcDirCacheRescan : function(dir:PFcChar8; config:PFcConfig):PFcCache;
- FcDirCacheRead : function(dir:PFcChar8; force:TFcBool; config:PFcConfig):PFcCache;
- FcDirCacheLoadFile : function(cache_file:PFcChar8; file_stat:Pstat):PFcCache;
- FcDirCacheUnload : procedure(cache:PFcCache);
- FcFreeTypeQuery : function(afile:PFcChar8; id:cint; blanks:PFcBlanks; count:pcint):PFcPattern;
- FcFontSetCreate : function:PFcFontSet;
- FcFontSetDestroy : procedure(s:PFcFontSet);
- FcFontSetAdd : function(s:PFcFontSet; font:PFcPattern):TFcBool;
- FcInitLoadConfig : function:PFcConfig;
- FcInitLoadConfigAndFonts : function:PFcConfig;
- FcInit : function:TFcBool;
- FcFini : procedure;
- FcGetVersion : function:cint;
- FcInitReinitialize : function:TFcBool;
- FcInitBringUptoDate : function:TFcBool;
- FcGetLangs : function:PFcStrSet;
- FcLangNormalize : function(lang:PFcChar8):PFcChar8;
- FcLangGetCharSet : function(lang:PFcChar8):PFcCharSet;
- FcLangSetCreate : function:PFcLangSet;
- FcLangSetDestroy : procedure(ls:PFcLangSet);
- FcLangSetCopy : function(ls:PFcLangSet):PFcLangSet;
- FcLangSetAdd : function(ls:PFcLangSet; lang:PFcChar8):TFcBool;
- FcLangSetDel : function(ls:PFcLangSet; lang:PFcChar8):TFcBool;
- FcLangSetHasLang : function(ls:PFcLangSet; lang:PFcChar8):TFcLangResult;
- FcLangSetCompare : function(lsa:PFcLangSet; lsb:PFcLangSet):TFcLangResult;
- FcLangSetContains : function(lsa:PFcLangSet; lsb:PFcLangSet):TFcBool;
- FcLangSetEqual : function(lsa:PFcLangSet; lsb:PFcLangSet):TFcBool;
- FcLangSetHash : function(ls:PFcLangSet):TFcChar32;
- FcLangSetGetLangs : function(ls:PFcLangSet):PFcStrSet;
- FcLangSetUnion : function(a:PFcLangSet; b:PFcLangSet):PFcLangSet;
- FcLangSetSubtract : function(a:PFcLangSet; b:PFcLangSet):PFcLangSet;
- FcObjectSetCreate : function:PFcObjectSet;
- FcObjectSetAdd : function(os:PFcObjectSet; _object:pcchar):TFcBool;
- FcObjectSetDestroy : procedure(os:PFcObjectSet);
- FcObjectSetBuild : function(first:pcchar; args:array of const):PFcObjectSet;
- FcFontSetList : function(config:PFcConfig; sets:PPFcFontSet; nsets:cint; p:PFcPattern; os:PFcObjectSet):PFcFontSet;
- FcFontList : function(config:PFcConfig; p:PFcPattern; os:PFcObjectSet):PFcFontSet;
- FcAtomicCreate : function(afile:PFcChar8):PFcAtomic;
- FcAtomicLock : function(atomic:PFcAtomic):TFcBool;
- FcAtomicNewFile : function(atomic:PFcAtomic):PFcChar8;
- FcAtomicOrigFile : function(atomic:PFcAtomic):PFcChar8;
- FcAtomicReplaceOrig : function(atomic:PFcAtomic):TFcBool;
- FcAtomicDeleteNew : procedure(atomic:PFcAtomic);
- FcAtomicUnlock : procedure(atomic:PFcAtomic);
- FcAtomicDestroy : procedure(atomic:PFcAtomic);
- FcFontSetMatch : function(config:PFcConfig; sets:PPFcFontSet; nsets:cint; p:PFcPattern; result:PFcResult):PFcPattern;
- FcFontMatch : function(config:PFcConfig; p:PFcPattern; result:PFcResult):PFcPattern;
- FcFontRenderPrepare : function(config:PFcConfig; pat:PFcPattern; font:PFcPattern):PFcPattern;
- FcFontSetSort : function(config:PFcConfig; sets:PPFcFontSet; nsets:cint; p:PFcPattern; trim:TFcBool;
- csp:PPFcCharSet; result:PFcResult):PFcFontSet;
- FcFontSort : function(config:PFcConfig; p:PFcPattern; trim:TFcBool; csp:PPFcCharSet; result:PFcResult):PFcFontSet;
- FcFontSetSortDestroy : procedure(fs:PFcFontSet);
- FcMatrixCopy : function(mat:PFcMatrix):PFcMatrix;
- FcMatrixEqual : function(mat1:PFcMatrix; mat2:PFcMatrix):TFcBool;
- FcMatrixMultiply : procedure(result:PFcMatrix; a:PFcMatrix; b:PFcMatrix);
- FcMatrixRotate : procedure(m:PFcMatrix; c:double; s:double);
- FcMatrixScale : procedure(m:PFcMatrix; sx:double; sy:double);
- FcMatrixShear : procedure(m:PFcMatrix; sh:double; sv:double);
- FcNameRegisterObjectTypes : function(types:PFcObjectType; ntype:cint):TFcBool;
- FcNameUnregisterObjectTypes : function(types:PFcObjectType; ntype:cint):TFcBool;
- FcNameGetObjectType : function(_object:pcchar):PFcObjectType;
- FcNameRegisterConstants : function(consts:PFcConstant; nconsts:cint):TFcBool;
- FcNameUnregisterConstants : function(consts:PFcConstant; nconsts:cint):TFcBool;
- FcNameGetConstant : function(_string:PFcChar8):PFcConstant;
- FcNameConstant : function(_string:PFcChar8; result:pcint):TFcBool;
- FcNameParse : function(name:PFcChar8):PFcPattern;
- FcNameUnparse : function(pat:PFcPattern):PFcChar8;
- FcPatternCreate : function:PFcPattern;
- FcPatternDuplicate : function(p:PFcPattern):PFcPattern;
- FcPatternReference : procedure(p:PFcPattern);
- FcPatternFilter : function(p:PFcPattern; os:PFcObjectSet):PFcPattern;
- FcValueDestroy : procedure(v:TFcValue);
- FcValueEqual : function(va:TFcValue; vb:TFcValue):TFcBool;
- FcValueSave : function(v:TFcValue):TFcValue;
- FcPatternDestroy : procedure(p:PFcPattern);
- FcPatternEqual : function(pa:PFcPattern; pb:PFcPattern):TFcBool;
- FcPatternEqualSubset : function(pa:PFcPattern; pb:PFcPattern; os:PFcObjectSet):TFcBool;
- FcPatternHash : function(p:PFcPattern):TFcChar32;
- FcPatternAdd : function(p:PFcPattern; _object:pcchar; value:TFcValue; append:TFcBool):TFcBool;
- FcPatternAddWeak : function(p:PFcPattern; _object:pcchar; value:TFcValue; append:TFcBool):TFcBool;
- FcPatternGet : function(p:PFcPattern; _object:pcchar; id:cint; v:PFcValue):TFcResult;
- FcPatternDel : function(p:PFcPattern; _object:pcchar):TFcBool;
- FcPatternRemove : function(p:PFcPattern; _object:pcchar; id:cint):TFcBool;
- FcPatternAddInteger : function(p:PFcPattern; _object:pcchar; i:cint):TFcBool;
- FcPatternAddDouble : function(p:PFcPattern; _object:pcchar; d:double):TFcBool;
- FcPatternAddString : function(p:PFcPattern; _object:pcchar; s:PFcChar8):TFcBool;
- FcPatternAddMatrix : function(p:PFcPattern; _object:pcchar; s:PFcMatrix):TFcBool;
- FcPatternAddCharSet : function(p:PFcPattern; _object:pcchar; c:PFcCharSet):TFcBool;
- FcPatternAddBool : function(p:PFcPattern; _object:pcchar; b:TFcBool):TFcBool;
- FcPatternAddLangSet : function(p:PFcPattern; _object:pcchar; ls:PFcLangSet):TFcBool;
- FcPatternAddRange : function(p:PFcPattern; _object:pcchar; r:PFcRange):TFcBool;
- FcPatternGetInteger : function(p:PFcPattern; _object:pcchar; n:cint; i:pcint):TFcResult;
- FcPatternGetDouble : function(p:PFcPattern; _object:pcchar; n:cint; d:Pdouble):TFcResult;
- FcPatternGetString : function(p:PFcPattern; _object:pcchar; n:cint; s:PPFcChar8):TFcResult;
- FcPatternGetMatrix : function(p:PFcPattern; _object:pcchar; n:cint; s:PPFcMatrix):TFcResult;
- FcPatternGetCharSet : function(p:PFcPattern; _object:pcchar; n:cint; c:PPFcCharSet):TFcResult;
- FcPatternGetBool : function(p:PFcPattern; _object:pcchar; n:cint; b:PFcBool):TFcResult;
- FcPatternGetLangSet : function(p:PFcPattern; _object:pcchar; n:cint; ls:PPFcLangSet):TFcResult;
- FcPatternGetRange : function(p:PFcPattern; _object:pcchar; id:cint; r:PPFcRange):TFcResult;
- FcPatternBuild : function(p:PFcPattern; args:array of const):PFcPattern;
- FcPatternFormat : function(pat:PFcPattern; format:PFcChar8):PFcChar8;
- FcRangeCreateDouble : function(_begin:double; _end:double):PFcRange;
- FcRangeCreateInteger : function(_begin:TFcChar32; _end:TFcChar32):PFcRange;
- FcRangeDestroy : procedure(range:PFcRange);
- FcRangeCopy : function(r:PFcRange):PFcRange;
- FcRangeGetDouble : function(range:PFcRange; _begin:Pdouble; _end:Pdouble):TFcBool;
- FcWeightFromOpenType : function(ot_weight:cint):cint;
- FcWeightToOpenType : function(fc_weight:cint):cint;
- FcStrCopy : function(s:PFcChar8):PFcChar8;
- FcStrCopyFilename : function(s:PFcChar8):PFcChar8;
- FcStrPlus : function(s1:PFcChar8; s2:PFcChar8):PFcChar8;
- FcStrFree : procedure(s:PFcChar8);
- FcStrDowncase : function(s:PFcChar8):PFcChar8;
- FcStrCmpIgnoreCase : function(s1:PFcChar8; s2:PFcChar8):cint;
- FcStrCmp : function(s1:PFcChar8; s2:PFcChar8):cint;
- FcStrStrIgnoreCase : function(s1:PFcChar8; s2:PFcChar8):PFcChar8;
- FcStrStr : function(s1:PFcChar8; s2:PFcChar8):PFcChar8;
- FcUtf8ToUcs4 : function(src_orig:PFcChar8; dst:PFcChar32; len:cint):cint;
- FcUtf8Len : function(_string:PFcChar8; len:cint; nchar:pcint; wchar:pcint):TFcBool;
- FcUcs4ToUtf8 : function(ucs4:TFcChar32; dest: TUTF8Array):cint;
- FcUtf16ToUcs4 : function(src_orig:PFcChar8; endian:TFcEndian; dst:PFcChar32; len:cint):cint;
- FcUtf16Len : function(_string:PFcChar8; endian:TFcEndian; len:cint; nchar:pcint; wchar:pcint):TFcBool;
- FcStrDirname : function(afile:PFcChar8):PFcChar8;
- FcStrBasename : function(afile:PFcChar8):PFcChar8;
- FcStrSetCreate : function:PFcStrSet;
- FcStrSetMember : function(aset:PFcStrSet; s:PFcChar8):TFcBool;
- FcStrSetEqual : function(sa:PFcStrSet; sb:PFcStrSet):TFcBool;
- FcStrSetAdd : function(aset:PFcStrSet; s:PFcChar8):TFcBool;
- FcStrSetAddFilename : function(aset:PFcStrSet; s:PFcChar8):TFcBool;
- FcStrSetDel : function(aset:PFcStrSet; s:PFcChar8):TFcBool;
- FcStrSetDestroy : procedure(aset:PFcStrSet);
- FcStrListCreate : function(aset:PFcStrSet):PFcStrList;
- FcStrListFirst : procedure(list:PFcStrList);
- FcStrListNext : function(list:PFcStrList):PFcChar8;
- FcStrListDone : procedure(list:PFcStrList);
- FcConfigParseAndLoad : function(config:PFcConfig; afile:PFcChar8; complain:TFcBool):TFcBool;
- // Macros
- Procedure FcMatrixInit(out m : TFCMatrix);
- function FC_CHARSET_DONE : TFcChar32;
- function FcIsUpper(c : longint) : Boolean;
- function FcIsLower(c : longint) : Boolean;
- function FcToLower(c : longint) : longint;
- Function LoadFontConfigLib(Const ALibName : String; RaiseError : Boolean = True) : Integer;
- Function UnLoadFontConfigLib : Integer;
- Function FontConfigLibLoaded : Boolean;
- implementation
- {$IFDEF FPC_DOTTEDUNITS}
- uses
- System.SysUtils;
- {$ELSE FPC_DOTTEDUNITS}
- uses
- SysUtils;
- {$ENDIF FPC_DOTTEDUNITS}
- Procedure FcMatrixInit(out m : TFCMatrix);
- begin
- m.xx:=1;
- m.yy:=1;
- end;
- function FC_CHARSET_DONE : TFcChar32;
- begin
- FC_CHARSET_DONE:=TFcChar32(-(1));
- end;
- function FcIsUpper(c : longint) : boolean;
- begin
- FcIsUpper:=(Ord('A')<=c) and (c<=Ord('Z'));
- end;
- function FcIsLower(c : longint) : boolean;
- begin
- FcIsLower:=(Ord('a')<=c) and (c<=Ord('z'));
- end;
- function FcToLower(c : longint) : longint;
- var
- if_local1 : longint;
-
- begin
- if FcIsUpper(c) then
- if_local1:=c-Ord('A')+Ord('a')
- else
- if_local1:=c;
- FcToLower:=if_local1;
- end;
- var
- hlib : tlibhandle;
- hcount : integer;
- loadedlib : string;
- Function FontConfigLibLoaded : Boolean;
- begin
- Result:=hLib<>NilHandle;
- end;
- procedure Freefc;
- begin
- if hlib<>NilHandle then
- FreeLibrary(hlib);
- hlib:=NilHandle;
- FcBlanksCreate:=nil;
- FcBlanksDestroy:=nil;
- FcBlanksAdd:=nil;
- FcBlanksIsMember:=nil;
- FcCacheDir:=nil;
- FcCacheCopySet:=nil;
- FcCacheSubdir:=nil;
- FcCacheNumSubdir:=nil;
- FcCacheNumFont:=nil;
- FcDirCacheUnlink:=nil;
- FcDirCacheValid:=nil;
- FcDirCacheClean:=nil;
- FcCacheCreateTagFile:=nil;
- FcConfigHome:=nil;
- FcConfigEnableHome:=nil;
- FcConfigFilename:=nil;
- FcConfigCreate:=nil;
- FcConfigReference:=nil;
- FcConfigDestroy:=nil;
- FcConfigSetCurrent:=nil;
- FcConfigGetCurrent:=nil;
- FcConfigUptoDate:=nil;
- FcConfigBuildFonts:=nil;
- FcConfigGetFontDirs:=nil;
- FcConfigGetConfigDirs:=nil;
- FcConfigGetConfigFiles:=nil;
- FcConfigGetCache:=nil;
- FcConfigGetBlanks:=nil;
- FcConfigGetCacheDirs:=nil;
- FcConfigGetRescanInterval:=nil;
- FcConfigSetRescanInterval:=nil;
- FcConfigGetFonts:=nil;
- FcConfigAppFontAddFile:=nil;
- FcConfigAppFontAddDir:=nil;
- FcConfigAppFontClear:=nil;
- FcConfigSubstituteWithPat:=nil;
- FcConfigSubstitute:=nil;
- FcConfigGetSysRoot:=nil;
- FcConfigSetSysRoot:=nil;
- FcCharSetCreate:=nil;
- FcCharSetNew:=nil;
- FcCharSetDestroy:=nil;
- FcCharSetAddChar:=nil;
- FcCharSetDelChar:=nil;
- FcCharSetCopy:=nil;
- FcCharSetEqual:=nil;
- FcCharSetIntersect:=nil;
- FcCharSetUnion:=nil;
- FcCharSetSubtract:=nil;
- FcCharSetMerge:=nil;
- FcCharSetHasChar:=nil;
- FcCharSetCount:=nil;
- FcCharSetIntersectCount:=nil;
- FcCharSetSubtractCount:=nil;
- FcCharSetIsSubset:=nil;
- FcCharSetFirstPage:=nil;
- FcCharSetNextPage:=nil;
- FcCharSetCoverage:=nil;
- FcValuePrint:=nil;
- FcPatternPrint:=nil;
- FcFontSetPrint:=nil;
- FcGetDefaultLangs:=nil;
- FcDefaultSubstitute:=nil;
- FcFileIsDir:=nil;
- FcFileScan:=nil;
- FcDirScan:=nil;
- FcDirSave:=nil;
- FcDirCacheLoad:=nil;
- FcDirCacheRescan:=nil;
- FcDirCacheRead:=nil;
- FcDirCacheLoadFile:=nil;
- FcDirCacheUnload:=nil;
- FcFreeTypeQuery:=nil;
- FcFontSetCreate:=nil;
- FcFontSetDestroy:=nil;
- FcFontSetAdd:=nil;
- FcInitLoadConfig:=nil;
- FcInitLoadConfigAndFonts:=nil;
- FcInit:=nil;
- FcFini:=nil;
- FcGetVersion:=nil;
- FcInitReinitialize:=nil;
- FcInitBringUptoDate:=nil;
- FcGetLangs:=nil;
- FcLangNormalize:=nil;
- FcLangGetCharSet:=nil;
- FcLangSetCreate:=nil;
- FcLangSetDestroy:=nil;
- FcLangSetCopy:=nil;
- FcLangSetAdd:=nil;
- FcLangSetDel:=nil;
- FcLangSetHasLang:=nil;
- FcLangSetCompare:=nil;
- FcLangSetContains:=nil;
- FcLangSetEqual:=nil;
- FcLangSetHash:=nil;
- FcLangSetGetLangs:=nil;
- FcLangSetUnion:=nil;
- FcLangSetSubtract:=nil;
- FcObjectSetCreate:=nil;
- FcObjectSetAdd:=nil;
- FcObjectSetDestroy:=nil;
- FcObjectSetBuild:=nil;
- FcFontSetList:=nil;
- FcFontList:=nil;
- FcAtomicCreate:=nil;
- FcAtomicLock:=nil;
- FcAtomicNewFile:=nil;
- FcAtomicOrigFile:=nil;
- FcAtomicReplaceOrig:=nil;
- FcAtomicDeleteNew:=nil;
- FcAtomicUnlock:=nil;
- FcAtomicDestroy:=nil;
- FcFontSetMatch:=nil;
- FcFontMatch:=nil;
- FcFontRenderPrepare:=nil;
- FcFontSetSort:=nil;
- FcFontSort:=nil;
- FcFontSetSortDestroy:=nil;
- FcMatrixCopy:=nil;
- FcMatrixEqual:=nil;
- FcMatrixMultiply:=nil;
- FcMatrixRotate:=nil;
- FcMatrixScale:=nil;
- FcMatrixShear:=nil;
- FcNameRegisterObjectTypes:=nil;
- FcNameUnregisterObjectTypes:=nil;
- FcNameGetObjectType:=nil;
- FcNameRegisterConstants:=nil;
- FcNameUnregisterConstants:=nil;
- FcNameGetConstant:=nil;
- FcNameConstant:=nil;
- FcNameParse:=nil;
- FcNameUnparse:=nil;
- FcPatternCreate:=nil;
- FcPatternDuplicate:=nil;
- FcPatternReference:=nil;
- FcPatternFilter:=nil;
- FcValueDestroy:=nil;
- FcValueEqual:=nil;
- FcValueSave:=nil;
- FcPatternDestroy:=nil;
- FcPatternEqual:=nil;
- FcPatternEqualSubset:=nil;
- FcPatternHash:=nil;
- FcPatternAdd:=nil;
- FcPatternAddWeak:=nil;
- FcPatternGet:=nil;
- FcPatternDel:=nil;
- FcPatternRemove:=nil;
- FcPatternAddInteger:=nil;
- FcPatternAddDouble:=nil;
- FcPatternAddString:=nil;
- FcPatternAddMatrix:=nil;
- FcPatternAddCharSet:=nil;
- FcPatternAddBool:=nil;
- FcPatternAddLangSet:=nil;
- FcPatternAddRange:=nil;
- FcPatternGetInteger:=nil;
- FcPatternGetDouble:=nil;
- FcPatternGetString:=nil;
- FcPatternGetMatrix:=nil;
- FcPatternGetCharSet:=nil;
- FcPatternGetBool:=nil;
- FcPatternGetLangSet:=nil;
- FcPatternGetRange:=nil;
- FcPatternBuild:=nil;
- FcPatternBuild:=nil;
- FcPatternFormat:=nil;
- FcRangeCreateDouble:=nil;
- FcRangeCreateInteger:=nil;
- FcRangeDestroy:=nil;
- FcRangeCopy:=nil;
- FcRangeGetDouble:=nil;
- FcWeightFromOpenType:=nil;
- FcWeightToOpenType:=nil;
- FcStrCopy:=nil;
- FcStrCopyFilename:=nil;
- FcStrPlus:=nil;
- FcStrFree:=nil;
- FcStrDowncase:=nil;
- FcStrCmpIgnoreCase:=nil;
- FcStrCmp:=nil;
- FcStrStrIgnoreCase:=nil;
- FcStrStr:=nil;
- FcUtf8ToUcs4:=nil;
- FcUtf8Len:=nil;
- FcUcs4ToUtf8:=nil;
- FcUtf16ToUcs4:=nil;
- FcUtf16Len:=nil;
- FcStrDirname:=nil;
- FcStrBasename:=nil;
- FcStrSetCreate:=nil;
- FcStrSetMember:=nil;
- FcStrSetEqual:=nil;
- FcStrSetAdd:=nil;
- FcStrSetAddFilename:=nil;
- FcStrSetDel:=nil;
- FcStrSetDestroy:=nil;
- FcStrListCreate:=nil;
- FcStrListFirst:=nil;
- FcStrListNext:=nil;
- FcStrListDone:=nil;
- FcConfigParseAndLoad:=nil;
- end;
- Function Loadfc(lib : PAnsiChar) : Boolean;
- begin
- Freefc;
- hlib:=LoadLibrary(lib);
- Result:=hlib<>NilHandle;
- If not Result then
- exit;
- if (hlib=NilHandle) then
- raise EInOutError.CreateFmt('Could not load library: "%s"',[lib]);
- pointer(FcBlanksCreate):=GetProcAddress(hlib,'FcBlanksCreate');
- pointer(FcBlanksDestroy):=GetProcAddress(hlib,'FcBlanksDestroy');
- pointer(FcBlanksAdd):=GetProcAddress(hlib,'FcBlanksAdd');
- pointer(FcBlanksIsMember):=GetProcAddress(hlib,'FcBlanksIsMember');
- pointer(FcCacheDir):=GetProcAddress(hlib,'FcCacheDir');
- pointer(FcCacheCopySet):=GetProcAddress(hlib,'FcCacheCopySet');
- pointer(FcCacheSubdir):=GetProcAddress(hlib,'FcCacheSubdir');
- pointer(FcCacheNumSubdir):=GetProcAddress(hlib,'FcCacheNumSubdir');
- pointer(FcCacheNumFont):=GetProcAddress(hlib,'FcCacheNumFont');
- pointer(FcDirCacheUnlink):=GetProcAddress(hlib,'FcDirCacheUnlink');
- pointer(FcDirCacheValid):=GetProcAddress(hlib,'FcDirCacheValid');
- pointer(FcDirCacheClean):=GetProcAddress(hlib,'FcDirCacheClean');
- pointer(FcCacheCreateTagFile):=GetProcAddress(hlib,'FcCacheCreateTagFile');
- pointer(FcConfigHome):=GetProcAddress(hlib,'FcConfigHome');
- pointer(FcConfigEnableHome):=GetProcAddress(hlib,'FcConfigEnableHome');
- pointer(FcConfigFilename):=GetProcAddress(hlib,'FcConfigFilename');
- pointer(FcConfigCreate):=GetProcAddress(hlib,'FcConfigCreate');
- pointer(FcConfigReference):=GetProcAddress(hlib,'FcConfigReference');
- pointer(FcConfigDestroy):=GetProcAddress(hlib,'FcConfigDestroy');
- pointer(FcConfigSetCurrent):=GetProcAddress(hlib,'FcConfigSetCurrent');
- pointer(FcConfigGetCurrent):=GetProcAddress(hlib,'FcConfigGetCurrent');
- pointer(FcConfigUptoDate):=GetProcAddress(hlib,'FcConfigUptoDate');
- pointer(FcConfigBuildFonts):=GetProcAddress(hlib,'FcConfigBuildFonts');
- pointer(FcConfigGetFontDirs):=GetProcAddress(hlib,'FcConfigGetFontDirs');
- pointer(FcConfigGetConfigDirs):=GetProcAddress(hlib,'FcConfigGetConfigDirs');
- pointer(FcConfigGetConfigFiles):=GetProcAddress(hlib,'FcConfigGetConfigFiles');
- pointer(FcConfigGetCache):=GetProcAddress(hlib,'FcConfigGetCache');
- pointer(FcConfigGetBlanks):=GetProcAddress(hlib,'FcConfigGetBlanks');
- pointer(FcConfigGetCacheDirs):=GetProcAddress(hlib,'FcConfigGetCacheDirs');
- pointer(FcConfigGetRescanInterval):=GetProcAddress(hlib,'FcConfigGetRescanInterval');
- pointer(FcConfigSetRescanInterval):=GetProcAddress(hlib,'FcConfigSetRescanInterval');
- pointer(FcConfigGetFonts):=GetProcAddress(hlib,'FcConfigGetFonts');
- pointer(FcConfigAppFontAddFile):=GetProcAddress(hlib,'FcConfigAppFontAddFile');
- pointer(FcConfigAppFontAddDir):=GetProcAddress(hlib,'FcConfigAppFontAddDir');
- pointer(FcConfigAppFontClear):=GetProcAddress(hlib,'FcConfigAppFontClear');
- pointer(FcConfigSubstituteWithPat):=GetProcAddress(hlib,'FcConfigSubstituteWithPat');
- pointer(FcConfigSubstitute):=GetProcAddress(hlib,'FcConfigSubstitute');
- pointer(FcConfigGetSysRoot):=GetProcAddress(hlib,'FcConfigGetSysRoot');
- pointer(FcConfigSetSysRoot):=GetProcAddress(hlib,'FcConfigSetSysRoot');
- pointer(FcCharSetCreate):=GetProcAddress(hlib,'FcCharSetCreate');
- pointer(FcCharSetNew):=GetProcAddress(hlib,'FcCharSetNew');
- pointer(FcCharSetDestroy):=GetProcAddress(hlib,'FcCharSetDestroy');
- pointer(FcCharSetAddChar):=GetProcAddress(hlib,'FcCharSetAddChar');
- pointer(FcCharSetDelChar):=GetProcAddress(hlib,'FcCharSetDelChar');
- pointer(FcCharSetCopy):=GetProcAddress(hlib,'FcCharSetCopy');
- pointer(FcCharSetEqual):=GetProcAddress(hlib,'FcCharSetEqual');
- pointer(FcCharSetIntersect):=GetProcAddress(hlib,'FcCharSetIntersect');
- pointer(FcCharSetUnion):=GetProcAddress(hlib,'FcCharSetUnion');
- pointer(FcCharSetSubtract):=GetProcAddress(hlib,'FcCharSetSubtract');
- pointer(FcCharSetMerge):=GetProcAddress(hlib,'FcCharSetMerge');
- pointer(FcCharSetHasChar):=GetProcAddress(hlib,'FcCharSetHasChar');
- pointer(FcCharSetCount):=GetProcAddress(hlib,'FcCharSetCount');
- pointer(FcCharSetIntersectCount):=GetProcAddress(hlib,'FcCharSetIntersectCount');
- pointer(FcCharSetSubtractCount):=GetProcAddress(hlib,'FcCharSetSubtractCount');
- pointer(FcCharSetIsSubset):=GetProcAddress(hlib,'FcCharSetIsSubset');
- pointer(FcCharSetFirstPage):=GetProcAddress(hlib,'FcCharSetFirstPage');
- pointer(FcCharSetNextPage):=GetProcAddress(hlib,'FcCharSetNextPage');
- pointer(FcCharSetCoverage):=GetProcAddress(hlib,'FcCharSetCoverage');
- pointer(FcValuePrint):=GetProcAddress(hlib,'FcValuePrint');
- pointer(FcPatternPrint):=GetProcAddress(hlib,'FcPatternPrint');
- pointer(FcFontSetPrint):=GetProcAddress(hlib,'FcFontSetPrint');
- pointer(FcGetDefaultLangs):=GetProcAddress(hlib,'FcGetDefaultLangs');
- pointer(FcDefaultSubstitute):=GetProcAddress(hlib,'FcDefaultSubstitute');
- pointer(FcFileIsDir):=GetProcAddress(hlib,'FcFileIsDir');
- pointer(FcFileScan):=GetProcAddress(hlib,'FcFileScan');
- pointer(FcDirScan):=GetProcAddress(hlib,'FcDirScan');
- pointer(FcDirSave):=GetProcAddress(hlib,'FcDirSave');
- pointer(FcDirCacheLoad):=GetProcAddress(hlib,'FcDirCacheLoad');
- pointer(FcDirCacheRescan):=GetProcAddress(hlib,'FcDirCacheRescan');
- pointer(FcDirCacheRead):=GetProcAddress(hlib,'FcDirCacheRead');
- pointer(FcDirCacheLoadFile):=GetProcAddress(hlib,'FcDirCacheLoadFile');
- pointer(FcDirCacheUnload):=GetProcAddress(hlib,'FcDirCacheUnload');
- pointer(FcFreeTypeQuery):=GetProcAddress(hlib,'FcFreeTypeQuery');
- pointer(FcFontSetCreate):=GetProcAddress(hlib,'FcFontSetCreate');
- pointer(FcFontSetDestroy):=GetProcAddress(hlib,'FcFontSetDestroy');
- pointer(FcFontSetAdd):=GetProcAddress(hlib,'FcFontSetAdd');
- pointer(FcInitLoadConfig):=GetProcAddress(hlib,'FcInitLoadConfig');
- pointer(FcInitLoadConfigAndFonts):=GetProcAddress(hlib,'FcInitLoadConfigAndFonts');
- pointer(FcInit):=GetProcAddress(hlib,'FcInit');
- pointer(FcFini):=GetProcAddress(hlib,'FcFini');
- pointer(FcGetVersion):=GetProcAddress(hlib,'FcGetVersion');
- pointer(FcInitReinitialize):=GetProcAddress(hlib,'FcInitReinitialize');
- pointer(FcInitBringUptoDate):=GetProcAddress(hlib,'FcInitBringUptoDate');
- pointer(FcGetLangs):=GetProcAddress(hlib,'FcGetLangs');
- pointer(FcLangNormalize):=GetProcAddress(hlib,'FcLangNormalize');
- pointer(FcLangGetCharSet):=GetProcAddress(hlib,'FcLangGetCharSet');
- pointer(FcLangSetCreate):=GetProcAddress(hlib,'FcLangSetCreate');
- pointer(FcLangSetDestroy):=GetProcAddress(hlib,'FcLangSetDestroy');
- pointer(FcLangSetCopy):=GetProcAddress(hlib,'FcLangSetCopy');
- pointer(FcLangSetAdd):=GetProcAddress(hlib,'FcLangSetAdd');
- pointer(FcLangSetDel):=GetProcAddress(hlib,'FcLangSetDel');
- pointer(FcLangSetHasLang):=GetProcAddress(hlib,'FcLangSetHasLang');
- pointer(FcLangSetCompare):=GetProcAddress(hlib,'FcLangSetCompare');
- pointer(FcLangSetContains):=GetProcAddress(hlib,'FcLangSetContains');
- pointer(FcLangSetEqual):=GetProcAddress(hlib,'FcLangSetEqual');
- pointer(FcLangSetHash):=GetProcAddress(hlib,'FcLangSetHash');
- pointer(FcLangSetGetLangs):=GetProcAddress(hlib,'FcLangSetGetLangs');
- pointer(FcLangSetUnion):=GetProcAddress(hlib,'FcLangSetUnion');
- pointer(FcLangSetSubtract):=GetProcAddress(hlib,'FcLangSetSubtract');
- pointer(FcObjectSetCreate):=GetProcAddress(hlib,'FcObjectSetCreate');
- pointer(FcObjectSetAdd):=GetProcAddress(hlib,'FcObjectSetAdd');
- pointer(FcObjectSetDestroy):=GetProcAddress(hlib,'FcObjectSetDestroy');
- pointer(FcObjectSetBuild):=GetProcAddress(hlib,'FcObjectSetBuild');
- pointer(FcObjectSetBuild):=GetProcAddress(hlib,'FcObjectSetBuild');
- pointer(FcFontSetList):=GetProcAddress(hlib,'FcFontSetList');
- pointer(FcFontList):=GetProcAddress(hlib,'FcFontList');
- pointer(FcAtomicCreate):=GetProcAddress(hlib,'FcAtomicCreate');
- pointer(FcAtomicLock):=GetProcAddress(hlib,'FcAtomicLock');
- pointer(FcAtomicNewFile):=GetProcAddress(hlib,'FcAtomicNewFile');
- pointer(FcAtomicOrigFile):=GetProcAddress(hlib,'FcAtomicOrigFile');
- pointer(FcAtomicReplaceOrig):=GetProcAddress(hlib,'FcAtomicReplaceOrig');
- pointer(FcAtomicDeleteNew):=GetProcAddress(hlib,'FcAtomicDeleteNew');
- pointer(FcAtomicUnlock):=GetProcAddress(hlib,'FcAtomicUnlock');
- pointer(FcAtomicDestroy):=GetProcAddress(hlib,'FcAtomicDestroy');
- pointer(FcFontSetMatch):=GetProcAddress(hlib,'FcFontSetMatch');
- pointer(FcFontMatch):=GetProcAddress(hlib,'FcFontMatch');
- pointer(FcFontRenderPrepare):=GetProcAddress(hlib,'FcFontRenderPrepare');
- pointer(FcFontSetSort):=GetProcAddress(hlib,'FcFontSetSort');
- pointer(FcFontSort):=GetProcAddress(hlib,'FcFontSort');
- pointer(FcFontSetSortDestroy):=GetProcAddress(hlib,'FcFontSetSortDestroy');
- pointer(FcMatrixCopy):=GetProcAddress(hlib,'FcMatrixCopy');
- pointer(FcMatrixEqual):=GetProcAddress(hlib,'FcMatrixEqual');
- pointer(FcMatrixMultiply):=GetProcAddress(hlib,'FcMatrixMultiply');
- pointer(FcMatrixRotate):=GetProcAddress(hlib,'FcMatrixRotate');
- pointer(FcMatrixScale):=GetProcAddress(hlib,'FcMatrixScale');
- pointer(FcMatrixShear):=GetProcAddress(hlib,'FcMatrixShear');
- pointer(FcNameRegisterObjectTypes):=GetProcAddress(hlib,'FcNameRegisterObjectTypes');
- pointer(FcNameUnregisterObjectTypes):=GetProcAddress(hlib,'FcNameUnregisterObjectTypes');
- pointer(FcNameGetObjectType):=GetProcAddress(hlib,'FcNameGetObjectType');
- pointer(FcNameRegisterConstants):=GetProcAddress(hlib,'FcNameRegisterConstants');
- pointer(FcNameUnregisterConstants):=GetProcAddress(hlib,'FcNameUnregisterConstants');
- pointer(FcNameGetConstant):=GetProcAddress(hlib,'FcNameGetConstant');
- pointer(FcNameConstant):=GetProcAddress(hlib,'FcNameConstant');
- pointer(FcNameParse):=GetProcAddress(hlib,'FcNameParse');
- pointer(FcNameUnparse):=GetProcAddress(hlib,'FcNameUnparse');
- pointer(FcPatternCreate):=GetProcAddress(hlib,'FcPatternCreate');
- pointer(FcPatternDuplicate):=GetProcAddress(hlib,'FcPatternDuplicate');
- pointer(FcPatternReference):=GetProcAddress(hlib,'FcPatternReference');
- pointer(FcPatternFilter):=GetProcAddress(hlib,'FcPatternFilter');
- pointer(FcValueDestroy):=GetProcAddress(hlib,'FcValueDestroy');
- pointer(FcValueEqual):=GetProcAddress(hlib,'FcValueEqual');
- pointer(FcValueSave):=GetProcAddress(hlib,'FcValueSave');
- pointer(FcPatternDestroy):=GetProcAddress(hlib,'FcPatternDestroy');
- pointer(FcPatternEqual):=GetProcAddress(hlib,'FcPatternEqual');
- pointer(FcPatternEqualSubset):=GetProcAddress(hlib,'FcPatternEqualSubset');
- pointer(FcPatternHash):=GetProcAddress(hlib,'FcPatternHash');
- pointer(FcPatternAdd):=GetProcAddress(hlib,'FcPatternAdd');
- pointer(FcPatternAddWeak):=GetProcAddress(hlib,'FcPatternAddWeak');
- pointer(FcPatternGet):=GetProcAddress(hlib,'FcPatternGet');
- pointer(FcPatternDel):=GetProcAddress(hlib,'FcPatternDel');
- pointer(FcPatternRemove):=GetProcAddress(hlib,'FcPatternRemove');
- pointer(FcPatternAddInteger):=GetProcAddress(hlib,'FcPatternAddInteger');
- pointer(FcPatternAddDouble):=GetProcAddress(hlib,'FcPatternAddDouble');
- pointer(FcPatternAddString):=GetProcAddress(hlib,'FcPatternAddString');
- pointer(FcPatternAddMatrix):=GetProcAddress(hlib,'FcPatternAddMatrix');
- pointer(FcPatternAddCharSet):=GetProcAddress(hlib,'FcPatternAddCharSet');
- pointer(FcPatternAddBool):=GetProcAddress(hlib,'FcPatternAddBool');
- pointer(FcPatternAddLangSet):=GetProcAddress(hlib,'FcPatternAddLangSet');
- pointer(FcPatternAddRange):=GetProcAddress(hlib,'FcPatternAddRange');
- pointer(FcPatternGetInteger):=GetProcAddress(hlib,'FcPatternGetInteger');
- pointer(FcPatternGetDouble):=GetProcAddress(hlib,'FcPatternGetDouble');
- pointer(FcPatternGetString):=GetProcAddress(hlib,'FcPatternGetString');
- pointer(FcPatternGetMatrix):=GetProcAddress(hlib,'FcPatternGetMatrix');
- pointer(FcPatternGetCharSet):=GetProcAddress(hlib,'FcPatternGetCharSet');
- pointer(FcPatternGetBool):=GetProcAddress(hlib,'FcPatternGetBool');
- pointer(FcPatternGetLangSet):=GetProcAddress(hlib,'FcPatternGetLangSet');
- pointer(FcPatternGetRange):=GetProcAddress(hlib,'FcPatternGetRange');
- pointer(FcPatternBuild):=GetProcAddress(hlib,'FcPatternBuild');
- pointer(FcPatternBuild):=GetProcAddress(hlib,'FcPatternBuild');
- pointer(FcPatternFormat):=GetProcAddress(hlib,'FcPatternFormat');
- pointer(FcRangeCreateDouble):=GetProcAddress(hlib,'FcRangeCreateDouble');
- pointer(FcRangeCreateInteger):=GetProcAddress(hlib,'FcRangeCreateInteger');
- pointer(FcRangeDestroy):=GetProcAddress(hlib,'FcRangeDestroy');
- pointer(FcRangeCopy):=GetProcAddress(hlib,'FcRangeCopy');
- pointer(FcRangeGetDouble):=GetProcAddress(hlib,'FcRangeGetDouble');
- pointer(FcWeightFromOpenType):=GetProcAddress(hlib,'FcWeightFromOpenType');
- pointer(FcWeightToOpenType):=GetProcAddress(hlib,'FcWeightToOpenType');
- pointer(FcStrCopy):=GetProcAddress(hlib,'FcStrCopy');
- pointer(FcStrCopyFilename):=GetProcAddress(hlib,'FcStrCopyFilename');
- pointer(FcStrPlus):=GetProcAddress(hlib,'FcStrPlus');
- pointer(FcStrFree):=GetProcAddress(hlib,'FcStrFree');
- pointer(FcStrDowncase):=GetProcAddress(hlib,'FcStrDowncase');
- pointer(FcStrCmpIgnoreCase):=GetProcAddress(hlib,'FcStrCmpIgnoreCase');
- pointer(FcStrCmp):=GetProcAddress(hlib,'FcStrCmp');
- pointer(FcStrStrIgnoreCase):=GetProcAddress(hlib,'FcStrStrIgnoreCase');
- pointer(FcStrStr):=GetProcAddress(hlib,'FcStrStr');
- pointer(FcUtf8ToUcs4):=GetProcAddress(hlib,'FcUtf8ToUcs4');
- pointer(FcUtf8Len):=GetProcAddress(hlib,'FcUtf8Len');
- pointer(FcUcs4ToUtf8):=GetProcAddress(hlib,'FcUcs4ToUtf8');
- pointer(FcUtf16ToUcs4):=GetProcAddress(hlib,'FcUtf16ToUcs4');
- pointer(FcUtf16Len):=GetProcAddress(hlib,'FcUtf16Len');
- pointer(FcStrDirname):=GetProcAddress(hlib,'FcStrDirname');
- pointer(FcStrBasename):=GetProcAddress(hlib,'FcStrBasename');
- pointer(FcStrSetCreate):=GetProcAddress(hlib,'FcStrSetCreate');
- pointer(FcStrSetMember):=GetProcAddress(hlib,'FcStrSetMember');
- pointer(FcStrSetEqual):=GetProcAddress(hlib,'FcStrSetEqual');
- pointer(FcStrSetAdd):=GetProcAddress(hlib,'FcStrSetAdd');
- pointer(FcStrSetAddFilename):=GetProcAddress(hlib,'FcStrSetAddFilename');
- pointer(FcStrSetDel):=GetProcAddress(hlib,'FcStrSetDel');
- pointer(FcStrSetDestroy):=GetProcAddress(hlib,'FcStrSetDestroy');
- pointer(FcStrListCreate):=GetProcAddress(hlib,'FcStrListCreate');
- pointer(FcStrListFirst):=GetProcAddress(hlib,'FcStrListFirst');
- pointer(FcStrListNext):=GetProcAddress(hlib,'FcStrListNext');
- pointer(FcStrListDone):=GetProcAddress(hlib,'FcStrListDone');
- pointer(FcConfigParseAndLoad):=GetProcAddress(hlib,'FcConfigParseAndLoad');
- end;
- Function LoadFontConfigLib(Const ALibName : String; RaiseError : Boolean = true) : Integer;
- Var
- FN : String;
- begin
- Result:=-1;
- FN:=ALibName;
- if FN='' then
- FN:=DefaultLibName;
- if (HCount>0) then
- begin
- if (FN=LoadedLib) then
- Inc(HCount)
- else if RaiseError then
- Raise EInoutError.CreateFmt('Cannot load "%s", FontConfig library already loaded as "%s"',[FN,LoadedLib])
- else
- Exit;
- end
- else
- begin
- if LoadFC(PAnsiChar(FN)) then
- begin
- inc(HCount);
- LoadedLib:=FN;
- end
- else if RaiseError then
- raise EInOutError.CreateFmt('Could not load library: "%s"',[FN])
- else
- Exit;
- end;
- Result:=HCount;
- end;
- Function UnLoadFontConfigLib : Integer;
- begin
- if (hCount>0) then
- begin
- Dec(HCount);
- if (HCount=0) then
- FreeFC;
- end;
- Result:=HCount;
- end;
- end.
|