1#![allow(non_upper_case_globals)]
8#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10
11use std::os::raw::{c_char, c_double, c_int, c_uchar, c_uint, c_ushort, c_void};
12
13pub use dlib::ffi_dispatch;
14
15#[cfg(feature = "dlopen")]
16pub mod statics {
17 use super::Fc;
18 use once_cell::sync::Lazy;
19
20 static SONAME: &str = if cfg!(windows) {
21 "libfontconfig.dll"
22 } else if cfg!(target_vendor = "apple") {
23 "libfontconfig.dylib.1"
24 } else {
25 "libfontconfig.so.1"
26 };
27
28 pub static LIB_RESULT: Lazy<Result<Fc, dlib::DlError>> =
29 Lazy::new(|| unsafe { Fc::open(SONAME) });
30
31 pub static LIB: Lazy<&'static Fc> = Lazy::new(|| LIB_RESULT.as_ref().unwrap());
32}
33
34pub type FcChar8 = c_uchar;
35pub type FcChar16 = c_ushort;
36pub type FcChar32 = c_uint;
37pub type FcBool = c_int;
38
39pub type enum__FcType = c_uint;
40pub const FcTypeVoid: u32 = 0_u32;
41pub const FcTypeInteger: u32 = 1_u32;
42pub const FcTypeDouble: u32 = 2_u32;
43pub const FcTypeString: u32 = 3_u32;
44pub const FcTypeBool: u32 = 4_u32;
45pub const FcTypeMatrix: u32 = 5_u32;
46pub const FcTypeCharSet: u32 = 6_u32;
47pub const FcTypeFTFace: u32 = 7_u32;
48pub const FcTypeLangSet: u32 = 8_u32;
49
50pub type FcType = enum__FcType;
51
52pub mod constants {
53 use std::ffi::CStr;
54
55 use super::c_int;
56
57 pub const FC_WEIGHT_THIN: c_int = 0;
58 pub const FC_WEIGHT_EXTRALIGHT: c_int = 40;
59 pub const FC_WEIGHT_ULTRALIGHT: c_int = FC_WEIGHT_EXTRALIGHT;
60 pub const FC_WEIGHT_LIGHT: c_int = 50;
61 pub const FC_WEIGHT_BOOK: c_int = 75;
62 pub const FC_WEIGHT_REGULAR: c_int = 80;
63 pub const FC_WEIGHT_NORMAL: c_int = FC_WEIGHT_REGULAR;
64 pub const FC_WEIGHT_MEDIUM: c_int = 100;
65 pub const FC_WEIGHT_DEMIBOLD: c_int = 180;
66 pub const FC_WEIGHT_SEMIBOLD: c_int = FC_WEIGHT_DEMIBOLD;
67 pub const FC_WEIGHT_BOLD: c_int = 200;
68 pub const FC_WEIGHT_EXTRABOLD: c_int = 205;
69 pub const FC_WEIGHT_ULTRABOLD: c_int = FC_WEIGHT_EXTRABOLD;
70 pub const FC_WEIGHT_BLACK: c_int = 210;
71 pub const FC_WEIGHT_HEAVY: c_int = FC_WEIGHT_BLACK;
72 pub const FC_WEIGHT_EXTRABLACK: c_int = 215;
73 pub const FC_WEIGHT_ULTRABLACK: c_int = FC_WEIGHT_EXTRABLACK;
74
75 pub const FC_SLANT_ROMAN: c_int = 0;
76 pub const FC_SLANT_ITALIC: c_int = 100;
77 pub const FC_SLANT_OBLIQUE: c_int = 110;
78
79 pub const FC_WIDTH_ULTRACONDENSED: c_int = 50;
80 pub const FC_WIDTH_EXTRACONDENSED: c_int = 63;
81 pub const FC_WIDTH_CONDENSED: c_int = 75;
82 pub const FC_WIDTH_SEMICONDENSED: c_int = 87;
83 pub const FC_WIDTH_NORMAL: c_int = 100;
84 pub const FC_WIDTH_SEMIEXPANDED: c_int = 113;
85 pub const FC_WIDTH_EXPANDED: c_int = 125;
86 pub const FC_WIDTH_EXTRAEXPANDED: c_int = 150;
87 pub const FC_WIDTH_ULTRAEXPANDED: c_int = 200;
88
89 pub const FC_PROPORTIONAL: c_int = 0;
90 pub const FC_DUAL: c_int = 90;
91 pub const FC_MONO: c_int = 100;
92 pub const FC_CHARCELL: c_int = 110;
93
94 pub const FC_RGBA_UNKNOWN: c_int = 0;
95 pub const FC_RGBA_RGB: c_int = 1;
96 pub const FC_RGBA_BGR: c_int = 2;
97 pub const FC_RGBA_VRGB: c_int = 3;
98 pub const FC_RGBA_VBGR: c_int = 4;
99 pub const FC_RGBA_NONE: c_int = 5;
100
101 pub const FC_HINT_NONE: c_int = 0;
102 pub const FC_HINT_SLIGHT: c_int = 1;
103 pub const FC_HINT_MEDIUM: c_int = 2;
104 pub const FC_HINT_FULL: c_int = 3;
105
106 pub const FC_LCD_NONE: c_int = 0;
107 pub const FC_LCD_DEFAULT: c_int = 1;
108 pub const FC_LCD_LIGHT: c_int = 2;
109 pub const FC_LCD_LEGACY: c_int = 3;
110
111 pub const FC_CHARSET_MAP_SIZE: c_int = 8;
112 pub const FC_CHARSET_DONE: u32 = u32::MAX;
113 pub const FC_UTF8_MAX_LEN: c_int = 6;
114
115 pub const FC_FAMILY: &CStr = c"family";
116 pub const FC_STYLE: &CStr = c"style";
117 pub const FC_SLANT: &CStr = c"slant";
118 pub const FC_WEIGHT: &CStr = c"weight";
119 pub const FC_SIZE: &CStr = c"size";
120 pub const FC_ASPECT: &CStr = c"aspect";
121 pub const FC_PIXEL_SIZE: &CStr = c"pixelsize";
122 pub const FC_SPACING: &CStr = c"spacing";
123 pub const FC_FOUNDRY: &CStr = c"foundry";
124 pub const FC_ANTIALIAS: &CStr = c"antialias";
125 pub const FC_HINTING: &CStr = c"hinting";
126 pub const FC_HINT_STYLE: &CStr = c"hintstyle";
127 pub const FC_VERTICAL_LAYOUT: &CStr = c"verticallayout";
128 pub const FC_AUTOHINT: &CStr = c"autohint";
129 pub const FC_GLOBAL_ADVANCE: &CStr = c"globaladvance";
130 pub const FC_WIDTH: &CStr = c"width";
131 pub const FC_FILE: &CStr = c"file";
132 pub const FC_INDEX: &CStr = c"index";
133 pub const FC_FT_FACE: &CStr = c"ftface";
134 pub const FC_RASTERIZER: &CStr = c"rasterizer";
135 pub const FC_OUTLINE: &CStr = c"outline";
136 pub const FC_SCALABLE: &CStr = c"scalable";
137 pub const FC_COLOR: &CStr = c"color";
138 pub const FC_VARIABLE: &CStr = c"variable";
139 pub const FC_SCALE: &CStr = c"scale";
140 pub const FC_SYMBOL: &CStr = c"symbol";
141 pub const FC_DPI: &CStr = c"dpi";
142 pub const FC_RGBA: &CStr = c"rgba";
143 pub const FC_MINSPACE: &CStr = c"minspace";
144 pub const FC_SOURCE: &CStr = c"source";
145 pub const FC_CHARSET: &CStr = c"charset";
146 pub const FC_LANG: &CStr = c"lang";
147 pub const FC_FONTVERSION: &CStr = c"fontversion";
148 pub const FC_FULLNAME: &CStr = c"fullname";
149 pub const FC_FAMILYLANG: &CStr = c"familylang";
150 pub const FC_STYLELANG: &CStr = c"stylelang";
151 pub const FC_FULLNAMELANG: &CStr = c"fullnamelang";
152 pub const FC_CAPABILITY: &CStr = c"capability";
153 pub const FC_FONTFORMAT: &CStr = c"fontformat";
154 pub const FC_EMBOLDEN: &CStr = c"embolden";
155 pub const FC_EMBEDDED_BITMAP: &CStr = c"embeddedbitmap";
156 pub const FC_DECORATIVE: &CStr = c"decorative";
157 pub const FC_LCD_FILTER: &CStr = c"lcdfilter";
158 pub const FC_FONT_FEATURES: &CStr = c"fontfeatures";
159 pub const FC_FONT_VARIATIONS: &CStr = c"fontvariations";
160 pub const FC_NAMELANG: &CStr = c"namelang";
161 pub const FC_PRGNAME: &CStr = c"prgname";
162 pub const FC_HASH: &CStr = c"hash";
163 pub const FC_POSTSCRIPT_NAME: &CStr = c"postscriptname";
164 pub const FC_FONT_HAS_HINT: &CStr = c"fonthashint";
165 pub const FC_CACHE_SUFFIX: &CStr = c".cache-";
166 pub const FC_DIR_CACHE_FILE: &CStr = c"fonts.cache-";
167 pub const FC_USER_CACHE_FILE: &CStr = c".fonts.cache-";
168 pub const FC_CHARWIDTH: &CStr = c"charwidth";
169 pub const FC_CHAR_WIDTH: &CStr = c"charwidth";
170 pub const FC_CHAR_HEIGHT: &CStr = c"charheight";
171 pub const FC_MATRIX: &CStr = c"matrix";
172 pub const FC_ORDER: &CStr = c"order";
173}
174
175#[repr(C)]
176#[derive(Copy, Clone)]
177pub struct struct__FcMatrix {
178 pub xx: c_double,
179 pub xy: c_double,
180 pub yx: c_double,
181 pub yy: c_double,
182}
183
184pub type FcMatrix = struct__FcMatrix;
185
186pub type struct__FcCharSet = c_void;
187
188pub type FcCharSet = struct__FcCharSet;
189
190#[repr(C)]
191#[allow(missing_copy_implementations)]
192pub struct struct__FcObjectType {
193 pub object: *mut c_char,
194 pub _type: FcType,
195}
196
197pub type FcObjectType = struct__FcObjectType;
198
199#[repr(C)]
200#[allow(missing_copy_implementations)]
201pub struct struct__FcConstant {
202 pub name: *mut FcChar8,
203 pub object: *mut c_char,
204 pub value: c_int,
205}
206
207pub type FcConstant = struct__FcConstant;
208
209pub type enum__FcResult = c_uint;
210pub const FcResultMatch: u32 = 0_u32;
211pub const FcResultNoMatch: u32 = 1_u32;
212pub const FcResultTypeMismatch: u32 = 2_u32;
213pub const FcResultNoId: u32 = 3_u32;
214pub const FcResultOutOfMemory: u32 = 4_u32;
215
216pub type FcResult = enum__FcResult;
217
218pub type struct__FcPattern = c_void;
219
220pub type FcPattern = struct__FcPattern;
221
222pub type struct__FcLangSet = c_void;
223
224pub type FcLangSet = struct__FcLangSet;
225
226#[repr(C)]
227#[allow(missing_copy_implementations)]
228pub struct struct__FcValue {
229 pub _type: FcType,
230 pub u: union_unnamed1,
231}
232
233pub type FcValue = struct__FcValue;
234
235#[repr(C)]
236#[allow(missing_copy_implementations)]
237pub struct struct__FcFontSet {
238 pub nfont: c_int,
239 pub sfont: c_int,
240 pub fonts: *mut *mut FcPattern,
241}
242
243pub type FcFontSet = struct__FcFontSet;
244
245#[repr(C)]
246#[allow(missing_copy_implementations)]
247pub struct struct__FcObjectSet {
248 pub nobject: c_int,
249 pub sobject: c_int,
250 pub objects: *mut *mut c_char,
251}
252
253pub type FcObjectSet = struct__FcObjectSet;
254
255pub type enum__FcMatchKind = c_uint;
256pub const FcMatchPattern: u32 = 0_u32;
257pub const FcMatchFont: u32 = 1_u32;
258pub const FcMatchScan: u32 = 2_u32;
259
260pub type FcMatchKind = enum__FcMatchKind;
261
262pub type enum__FcLangResult = c_uint;
263pub const FcLangEqual: u32 = 0_u32;
264pub const FcLangDifferentCountry: u32 = 1_u32;
265pub const FcLangDifferentTerritory: u32 = 1_u32;
266pub const FcLangDifferentLang: u32 = 2_u32;
267
268pub type FcLangResult = enum__FcLangResult;
269
270pub type enum__FcSetName = c_uint;
271pub const FcSetSystem: u32 = 0_u32;
272pub const FcSetApplication: u32 = 1_u32;
273
274pub type FcSetName = enum__FcSetName;
275
276pub type struct__FcAtomic = c_void;
277
278pub type FcAtomic = struct__FcAtomic;
279
280pub type FcEndian = c_uint;
281pub const FcEndianBig: u32 = 0_u32;
282pub const FcEndianLittle: u32 = 1_u32;
283
284pub type struct__FcConfig = c_void;
285
286pub type FcConfig = struct__FcConfig;
287
288pub type struct__FcGlobalCache = c_void;
289
290pub type FcFileCache = struct__FcGlobalCache;
291
292pub type struct__FcBlanks = c_void;
293
294pub type FcBlanks = struct__FcBlanks;
295
296pub type struct__FcStrList = c_void;
297
298pub type FcStrList = struct__FcStrList;
299
300pub type struct__FcStrSet = c_void;
301
302pub type FcStrSet = struct__FcStrSet;
303
304pub type struct__FcCache = c_void;
305
306pub type FcCache = struct__FcCache;
307
308pub type union_unnamed1 = c_void;
309
310dlib::external_library!(Fc, "fontconfig",
311 functions:
312 fn FcBlanksCreate() -> *mut FcBlanks,
313
314 fn FcBlanksDestroy(*mut FcBlanks) -> (),
315
316 fn FcBlanksAdd(*mut FcBlanks, FcChar32) -> FcBool,
317
318 fn FcBlanksIsMember(*mut FcBlanks, FcChar32) -> FcBool,
319
320 fn FcCacheDir(*mut FcCache) -> *const FcChar8,
321
322 fn FcCacheCopySet(*const FcCache) -> *mut FcFontSet,
323
324 fn FcCacheSubdir(*const FcCache, c_int) -> *const FcChar8,
325
326 fn FcCacheNumSubdir(*const FcCache) -> c_int,
327
328 fn FcCacheNumFont(*const FcCache) -> c_int,
329
330 fn FcDirCacheUnlink(*const FcChar8, *mut FcConfig) -> FcBool,
331
332 fn FcDirCacheValid(*const FcChar8) -> FcBool,
333
334 fn FcConfigHome() -> *mut FcChar8,
335
336 fn FcConfigEnableHome(FcBool) -> FcBool,
337
338 fn FcConfigFilename(*const FcChar8) -> *mut FcChar8,
339
340 fn FcConfigCreate() -> *mut FcConfig,
341
342 fn FcConfigReference(*mut FcConfig) -> *mut FcConfig,
343
344 fn FcConfigDestroy(*mut FcConfig) -> (),
345
346 fn FcConfigSetCurrent(*mut FcConfig) -> FcBool,
347
348 fn FcConfigGetCurrent() -> *mut FcConfig,
349
350 fn FcConfigUptoDate(*mut FcConfig) -> FcBool,
351
352 fn FcConfigBuildFonts(*mut FcConfig) -> FcBool,
353
354 fn FcConfigGetFontDirs(*mut FcConfig) -> *mut FcStrList,
355
356 fn FcConfigGetConfigDirs(*mut FcConfig) -> *mut FcStrList,
357
358 fn FcConfigGetConfigFiles(*mut FcConfig) -> *mut FcStrList,
359
360 fn FcConfigGetCache(*mut FcConfig) -> *mut FcChar8,
361
362 fn FcConfigGetBlanks(*mut FcConfig) -> *mut FcBlanks,
363
364 fn FcConfigGetCacheDirs(*const FcConfig) -> *mut FcStrList,
365
366 fn FcConfigGetRescanInterval(*mut FcConfig) -> c_int,
367
368 fn FcConfigSetRescanInterval(*mut FcConfig, c_int) -> FcBool,
369
370 fn FcConfigGetFonts(*mut FcConfig, FcSetName) -> *mut FcFontSet,
371
372 fn FcConfigAppFontAddFile(*mut FcConfig, *const FcChar8) -> FcBool,
373
374 fn FcConfigAppFontAddDir(*mut FcConfig, *const FcChar8) -> FcBool,
375
376 fn FcConfigAppFontClear(*mut FcConfig) -> (),
377
378 fn FcConfigSubstituteWithPat(
379 *mut FcConfig,
380 *mut FcPattern,
381 *mut FcPattern,
382 FcMatchKind
383 ) -> FcBool,
384
385 fn FcConfigSubstitute(
386 *mut FcConfig,
387 *mut FcPattern,
388 FcMatchKind
389 ) -> FcBool,
390
391 fn FcCharSetCreate() -> *mut FcCharSet,
392
393 fn FcCharSetNew() -> *mut FcCharSet,
394
395 fn FcCharSetDestroy(*mut FcCharSet) -> (),
396
397 fn FcCharSetAddChar(*mut FcCharSet, FcChar32) -> FcBool,
398
399 fn FcCharSetDelChar(*mut FcCharSet, FcChar32) -> FcBool,
400
401 fn FcCharSetCopy(*mut FcCharSet) -> *mut FcCharSet,
402
403 fn FcCharSetEqual(*const FcCharSet, *const FcCharSet) -> FcBool,
404
405 fn FcCharSetIntersect(*const FcCharSet, *const FcCharSet) -> *mut FcCharSet,
406
407 fn FcCharSetUnion(*const FcCharSet, *const FcCharSet) -> *mut FcCharSet,
408
409 fn FcCharSetSubtract(*const FcCharSet, *const FcCharSet) -> *mut FcCharSet,
410
411 fn FcCharSetMerge(*mut FcCharSet, *const FcCharSet, *mut FcBool) -> FcBool,
412
413 fn FcCharSetHasChar(*const FcCharSet, FcChar32) -> FcBool,
414
415 fn FcCharSetCount(*const FcCharSet) -> FcChar32,
416
417 fn FcCharSetIntersectCount(*const FcCharSet, *const FcCharSet) -> FcChar32,
418
419 fn FcCharSetSubtractCount(*const FcCharSet, *const FcCharSet) -> FcChar32,
420
421 fn FcCharSetIsSubset(*const FcCharSet, *const FcCharSet) -> FcBool,
422
423 fn FcCharSetFirstPage(
424 *const FcCharSet,
425 *mut FcChar32,
426 *mut FcChar32
427 ) -> FcChar32,
428
429 fn FcCharSetNextPage(
430 *const FcCharSet,
431 *mut FcChar32,
432 *mut FcChar32
433 ) -> FcChar32,
434
435 fn FcCharSetCoverage(
436 *const FcCharSet,
437 FcChar32,
438 *mut FcChar32
439 ) -> FcChar32,
440
441 fn FcValuePrint(FcValue) -> (),
442
443 fn FcPatternPrint(*const FcPattern) -> (),
444
445 fn FcFontSetPrint(*mut FcFontSet) -> (),
446
447 fn FcDefaultSubstitute(*mut FcPattern) -> (),
448
449 fn FcFileIsDir(*const FcChar8) -> FcBool,
450
451 fn FcFileScan(
452 *mut FcFontSet,
453 *mut FcStrSet,
454 *mut FcFileCache,
455 *mut FcBlanks,
456 *const FcChar8,
457 FcBool
458 ) -> FcBool,
459
460 fn FcDirScan(
461 *mut FcFontSet,
462 *mut FcStrSet,
463 *mut FcFileCache,
464 *mut FcBlanks,
465 *const FcChar8,
466 FcBool
467 ) -> FcBool,
468
469 fn FcDirSave(*mut FcFontSet, *const FcStrSet, *mut FcChar8) -> FcBool,
470
471 fn FcDirCacheLoad(
472 *const FcChar8,
473 *mut FcConfig,
474 *mut *mut FcChar8
475 ) -> *mut FcCache,
476
477 fn FcDirCacheRead(
478 *const FcChar8,
479 FcBool,
480 *mut FcConfig
481 ) -> *mut FcCache,
482
483 fn FcDirCacheUnload(*mut FcCache) -> (),
486
487 fn FcFreeTypeQuery(
488 *const FcChar8,
489 c_int,
490 *mut FcBlanks,
491 *mut c_int
492 ) -> *mut FcPattern,
493
494 fn FcFontSetCreate() -> *mut FcFontSet,
495
496 fn FcFontSetDestroy(*mut FcFontSet) -> (),
497
498 fn FcFontSetAdd(*mut FcFontSet, *mut FcPattern) -> FcBool,
499
500 fn FcInitLoadConfig() -> *mut FcConfig,
501
502 fn FcInitLoadConfigAndFonts() -> *mut FcConfig,
503
504 fn FcInit() -> FcBool,
505
506 fn FcFini() -> (),
507
508 fn FcGetVersion() -> c_int,
509
510 fn FcInitReinitialize() -> FcBool,
511
512 fn FcInitBringUptoDate() -> FcBool,
513
514 fn FcGetLangs() -> *mut FcStrSet,
515
516 fn FcLangGetCharSet(*const FcChar8) -> *mut FcCharSet,
517
518 fn FcLangSetCreate() -> *mut FcLangSet,
519
520 fn FcLangSetDestroy(*mut FcLangSet) -> (),
521
522 fn FcLangSetCopy(*const FcLangSet) -> *mut FcLangSet,
523
524 fn FcLangSetAdd(*mut FcLangSet, *const FcChar8) -> FcBool,
525
526 fn FcLangSetHasLang(*const FcLangSet, *const FcChar8) -> FcLangResult,
527
528 fn FcLangSetCompare(*const FcLangSet, *const FcLangSet) -> FcLangResult,
529
530 fn FcLangSetContains(*const FcLangSet, *const FcLangSet) -> FcBool,
531
532 fn FcLangSetEqual(*const FcLangSet, *const FcLangSet) -> FcBool,
533
534 fn FcLangSetHash(*const FcLangSet) -> FcChar32,
535
536 fn FcLangSetGetLangs(*const FcLangSet) -> *mut FcStrSet,
537
538 fn FcObjectSetCreate() -> *mut FcObjectSet,
539
540 fn FcObjectSetAdd(*mut FcObjectSet, *const c_char) -> FcBool,
541
542 fn FcObjectSetDestroy(*mut FcObjectSet) -> (),
543
544 fn FcFontSetList(
547 *mut FcConfig,
548 *mut *mut FcFontSet,
549 c_int,
550 *mut FcPattern,
551 *mut FcObjectSet
552 ) -> *mut FcFontSet,
553
554 fn FcFontList(
555 *mut FcConfig,
556 *mut FcPattern,
557 *mut FcObjectSet
558 ) -> *mut FcFontSet,
559
560 fn FcAtomicCreate(*const FcChar8) -> *mut FcAtomic,
561
562 fn FcAtomicLock(*mut FcAtomic) -> FcBool,
563
564 fn FcAtomicNewFile(*mut FcAtomic) -> *mut FcChar8,
565
566 fn FcAtomicOrigFile(*mut FcAtomic) -> *mut FcChar8,
567
568 fn FcAtomicReplaceOrig(*mut FcAtomic) -> FcBool,
569
570 fn FcAtomicDeleteNew(*mut FcAtomic) -> (),
571
572 fn FcAtomicUnlock(*mut FcAtomic) -> (),
573
574 fn FcAtomicDestroy(*mut FcAtomic) -> (),
575
576 fn FcFontSetMatch(
577 *mut FcConfig,
578 *mut *mut FcFontSet,
579 c_int,
580 *mut FcPattern,
581 *mut FcResult
582 ) -> *mut FcPattern,
583
584 fn FcFontMatch(
585 *mut FcConfig,
586 *mut FcPattern,
587 *mut FcResult
588 ) -> *mut FcPattern,
589
590 fn FcFontRenderPrepare(
591 *mut FcConfig,
592 *mut FcPattern,
593 *mut FcPattern
594 ) -> *mut FcPattern,
595
596 fn FcFontSetSort(
597 *mut FcConfig,
598 *mut *mut FcFontSet,
599 c_int,
600 *mut FcPattern,
601 FcBool,
602 *mut *mut FcCharSet,
603 *mut FcResult
604 ) -> *mut FcFontSet,
605
606 fn FcFontSort(
607 *mut FcConfig,
608 *mut FcPattern,
609 FcBool,
610 *mut *mut FcCharSet,
611 *mut FcResult
612 ) -> *mut FcFontSet,
613
614 fn FcFontSetSortDestroy(*mut FcFontSet) -> (),
615
616 fn FcMatrixCopy(*const FcMatrix) -> *mut FcMatrix,
617
618 fn FcMatrixEqual(*const FcMatrix, *const FcMatrix) -> FcBool,
619
620 fn FcMatrixMultiply(*mut FcMatrix, *const FcMatrix, *const FcMatrix) -> (),
621
622 fn FcMatrixRotate(*mut FcMatrix, c_double, c_double) -> (),
623
624 fn FcMatrixScale(*mut FcMatrix, c_double, c_double) -> (),
625
626 fn FcMatrixShear(*mut FcMatrix, c_double, c_double) -> (),
627
628 fn FcNameRegisterObjectTypes(*const FcObjectType, c_int) -> FcBool,
629
630 fn FcNameUnregisterObjectTypes(*const FcObjectType, c_int) -> FcBool,
631
632 fn FcNameGetObjectType(*const c_char) -> *const FcObjectType,
633
634 fn FcNameRegisterConstants(*const FcConstant, c_int) -> FcBool,
635
636 fn FcNameUnregisterConstants(*const FcConstant, c_int) -> FcBool,
637
638 fn FcNameGetConstant(*mut FcChar8) -> *const FcConstant,
639
640 fn FcNameConstant(*mut FcChar8, *mut c_int) -> FcBool,
641
642 fn FcNameParse(*const FcChar8) -> *mut FcPattern,
643
644 fn FcNameUnparse(*mut FcPattern) -> *mut FcChar8,
645
646 fn FcPatternCreate() -> *mut FcPattern,
647
648 fn FcPatternDuplicate(*const FcPattern) -> *mut FcPattern,
649
650 fn FcPatternReference(*mut FcPattern) -> (),
651
652 fn FcPatternFilter(*mut FcPattern, *const FcObjectSet) -> *mut FcPattern,
653
654 fn FcValueDestroy(FcValue) -> (),
655
656 fn FcValueEqual(FcValue, FcValue) -> FcBool,
657
658 fn FcValueSave(FcValue) -> FcValue,
659
660 fn FcPatternDestroy(*mut FcPattern) -> (),
661
662 fn FcPatternEqual(*const FcPattern, *const FcPattern) -> FcBool,
663
664 fn FcPatternEqualSubset(
665 *const FcPattern,
666 *const FcPattern,
667 *const FcObjectSet
668 ) -> FcBool,
669
670 fn FcPatternHash(*const FcPattern) -> FcChar32,
671
672 fn FcPatternAdd(
673 *mut FcPattern,
674 *const c_char,
675 FcValue,
676 FcBool
677 ) -> FcBool,
678
679 fn FcPatternAddWeak(
680 *mut FcPattern,
681 *const c_char,
682 FcValue,
683 FcBool
684 ) -> FcBool,
685
686 fn FcPatternGet(
687 *mut FcPattern,
688 *const c_char,
689 c_int,
690 *mut FcValue
691 ) -> FcResult,
692
693 fn FcPatternDel(*mut FcPattern, *const c_char) -> FcBool,
694
695 fn FcPatternRemove(*mut FcPattern, *const c_char, c_int) -> FcBool,
696
697 fn FcPatternAddInteger(*mut FcPattern, *const c_char, c_int) -> FcBool,
698
699 fn FcPatternAddDouble(*mut FcPattern, *const c_char, c_double) -> FcBool,
700
701 fn FcPatternAddString(
702 *mut FcPattern,
703 *const c_char,
704 *const FcChar8
705 ) -> FcBool,
706
707 fn FcPatternAddMatrix(
708 *mut FcPattern,
709 *const c_char,
710 *const FcMatrix
711 ) -> FcBool,
712
713 fn FcPatternAddCharSet(
714 *mut FcPattern,
715 *const c_char,
716 *const FcCharSet
717 ) -> FcBool,
718
719 fn FcPatternAddBool(*mut FcPattern, *const c_char, FcBool) -> FcBool,
720
721 fn FcPatternAddLangSet(
722 *mut FcPattern,
723 *const c_char,
724 *const FcLangSet
725 ) -> FcBool,
726
727 fn FcPatternGetInteger(
728 *mut FcPattern,
729 *const c_char,
730 c_int,
731 *mut c_int
732 ) -> FcResult,
733
734 fn FcPatternGetDouble(
735 *mut FcPattern,
736 *const c_char,
737 c_int,
738 *mut c_double
739 ) -> FcResult,
740
741 fn FcPatternGetString(
742 *mut FcPattern,
743 *const c_char,
744 c_int,
745 *mut *mut FcChar8
746 ) -> FcResult,
747
748 fn FcPatternGetMatrix(
749 *mut FcPattern,
750 *const c_char,
751 c_int,
752 *mut *mut FcMatrix
753 ) -> FcResult,
754
755 fn FcPatternGetCharSet(
756 *mut FcPattern,
757 *const c_char,
758 c_int,
759 *mut *mut FcCharSet
760 ) -> FcResult,
761
762 fn FcPatternGetBool(
763 *mut FcPattern,
764 *const c_char,
765 c_int,
766 *mut FcBool
767 ) -> FcResult,
768
769 fn FcPatternGetLangSet(
770 *mut FcPattern,
771 *const c_char,
772 c_int,
773 *mut *mut FcLangSet
774 ) -> FcResult,
775
776 fn FcPatternGetFTFace(*mut FcPattern, *const c_char, c_int, *mut *mut c_void) -> FcResult,
780
781 fn FcPatternFormat(*mut FcPattern, *const FcChar8) -> *mut FcChar8,
784
785 fn FcStrCopy(*const FcChar8) -> *mut FcChar8,
786
787 fn FcStrCopyFilename(*const FcChar8) -> *mut FcChar8,
788
789 fn FcStrPlus(*const FcChar8, *const FcChar8) -> *mut FcChar8,
790
791 fn FcStrFree(*mut FcChar8) -> (),
792
793 fn FcStrDowncase(*const FcChar8) -> *mut FcChar8,
794
795 fn FcStrCmpIgnoreCase(*const FcChar8, *const FcChar8) -> c_int,
796
797 fn FcStrCmp(*const FcChar8, *const FcChar8) -> c_int,
798
799 fn FcStrStrIgnoreCase(*const FcChar8, *const FcChar8) -> *mut FcChar8,
800
801 fn FcStrStr(*const FcChar8, *const FcChar8) -> *mut FcChar8,
802
803 fn FcUtf8ToUcs4(*mut FcChar8, *mut FcChar32, c_int) -> c_int,
804
805 fn FcUtf8Len(
806 *mut FcChar8,
807 c_int,
808 *mut c_int,
809 *mut c_int
810 ) -> FcBool,
811
812 fn FcUcs4ToUtf8(FcChar32, *mut FcChar8) -> c_int,
813
814 fn FcUtf16ToUcs4(
815 *mut FcChar8,
816 FcEndian,
817 *mut FcChar32,
818 c_int
819 ) -> c_int,
820
821 fn FcUtf16Len(
822 *mut FcChar8,
823 FcEndian,
824 c_int,
825 *mut c_int,
826 *mut c_int
827 ) -> FcBool,
828
829 fn FcStrDirname(*const FcChar8) -> *mut FcChar8,
830
831 fn FcStrBasename(*const FcChar8) -> *mut FcChar8,
832
833 fn FcStrSetCreate() -> *mut FcStrSet,
834
835 fn FcStrSetMember(*mut FcStrSet, *const FcChar8) -> FcBool,
836
837 fn FcStrSetEqual(*mut FcStrSet, *mut FcStrSet) -> FcBool,
838
839 fn FcStrSetAdd(*mut FcStrSet, *const FcChar8) -> FcBool,
840
841 fn FcStrSetAddFilename(*mut FcStrSet, *const FcChar8) -> FcBool,
842
843 fn FcStrSetDel(*mut FcStrSet, *const FcChar8) -> FcBool,
844
845 fn FcStrSetDestroy(*mut FcStrSet) -> (),
846
847 fn FcStrListCreate(*mut FcStrSet) -> *mut FcStrList,
848
849 fn FcStrListNext(*mut FcStrList) -> *mut FcChar8,
850
851 fn FcStrListDone(*mut FcStrList) -> (),
852
853 fn FcConfigParseAndLoad(
854 *mut FcConfig,
855 *const FcChar8,
856 FcBool
857 ) -> FcBool,
858
859 varargs:
860 fn FcPatternBuild(*mut FcPattern) -> *mut FcPattern,
861 fn FcObjectSetBuild(*mut c_char) -> *mut FcObjectSet,
862);