ftheader.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. /***************************************************************************/
  2. /* */
  3. /* ftheader.h */
  4. /* */
  5. /* Build macros of the FreeType 2 library. */
  6. /* */
  7. /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */
  8. /* David Turner, Robert Wilhelm, and Werner Lemberg. */
  9. /* */
  10. /* This file is part of the FreeType project, and may only be used, */
  11. /* modified, and distributed under the terms of the FreeType project */
  12. /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
  13. /* this file you indicate that you have read the license and */
  14. /* understand and accept it fully. */
  15. /* */
  16. /***************************************************************************/
  17. #ifndef __FT_HEADER_H__
  18. #define __FT_HEADER_H__
  19. /*@***********************************************************************/
  20. /* */
  21. /* <Macro> */
  22. /* FT_BEGIN_HEADER */
  23. /* */
  24. /* <Description> */
  25. /* This macro is used in association with @FT_END_HEADER in header */
  26. /* files to ensure that the declarations within are properly */
  27. /* encapsulated in an `extern "C" { .. }' block when included from a */
  28. /* C++ compiler. */
  29. /* */
  30. #ifdef __cplusplus
  31. #define FT_BEGIN_HEADER extern "C" {
  32. #else
  33. #define FT_BEGIN_HEADER /* nothing */
  34. #endif
  35. /*@***********************************************************************/
  36. /* */
  37. /* <Macro> */
  38. /* FT_END_HEADER */
  39. /* */
  40. /* <Description> */
  41. /* This macro is used in association with @FT_BEGIN_HEADER in header */
  42. /* files to ensure that the declarations within are properly */
  43. /* encapsulated in an `extern "C" { .. }' block when included from a */
  44. /* C++ compiler. */
  45. /* */
  46. #ifdef __cplusplus
  47. #define FT_END_HEADER }
  48. #else
  49. #define FT_END_HEADER /* nothing */
  50. #endif
  51. /*************************************************************************/
  52. /* */
  53. /* Aliases for the FreeType 2 public and configuration files. */
  54. /* */
  55. /*************************************************************************/
  56. /*************************************************************************/
  57. /* */
  58. /* <Section> */
  59. /* header_file_macros */
  60. /* */
  61. /* <Title> */
  62. /* Header File Macros */
  63. /* */
  64. /* <Abstract> */
  65. /* Macro definitions used to #include specific header files. */
  66. /* */
  67. /* <Description> */
  68. /* The following macros are defined to the name of specific */
  69. /* FreeType 2 header files. They can be used directly in #include */
  70. /* statements as in: */
  71. /* */
  72. /* { */
  73. /* #include FT_FREETYPE_H */
  74. /* #include FT_MULTIPLE_MASTERS_H */
  75. /* #include FT_GLYPH_H */
  76. /* } */
  77. /* */
  78. /* There are several reasons why we are now using macros to name */
  79. /* public header files. The first one is that such macros are not */
  80. /* limited to the infamous 8.3 naming rule required by DOS (and */
  81. /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */
  82. /* */
  83. /* The second reason is that it allows for more flexibility in the */
  84. /* way FreeType 2 is installed on a given system. */
  85. /* */
  86. /*************************************************************************/
  87. /* configuration files */
  88. /*************************************************************************
  89. *
  90. * @macro:
  91. * FT_CONFIG_CONFIG_H
  92. *
  93. * @description:
  94. * A macro used in #include statements to name the file containing
  95. * FreeType 2 configuration data.
  96. *
  97. */
  98. #ifndef FT_CONFIG_CONFIG_H
  99. #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
  100. #endif
  101. /*************************************************************************
  102. *
  103. * @macro:
  104. * FT_CONFIG_STANDARD_LIBRARY_H
  105. *
  106. * @description:
  107. * A macro used in #include statements to name the file containing
  108. * FreeType 2 interface to the standard C library functions.
  109. *
  110. */
  111. #ifndef FT_CONFIG_STANDARD_LIBRARY_H
  112. #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
  113. #endif
  114. /*************************************************************************
  115. *
  116. * @macro:
  117. * FT_CONFIG_OPTIONS_H
  118. *
  119. * @description:
  120. * A macro used in #include statements to name the file containing
  121. * FreeType 2 project-specific configuration options.
  122. *
  123. */
  124. #ifndef FT_CONFIG_OPTIONS_H
  125. #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
  126. #endif
  127. /*************************************************************************
  128. *
  129. * @macro:
  130. * FT_CONFIG_MODULES_H
  131. *
  132. * @description:
  133. * A macro used in #include statements to name the file containing the
  134. * list of FreeType 2 modules that are statically linked to new library
  135. * instances in @FT_Init_FreeType.
  136. *
  137. */
  138. #ifndef FT_CONFIG_MODULES_H
  139. #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
  140. #endif
  141. /* public headers */
  142. /*************************************************************************
  143. *
  144. * @macro:
  145. * FT_FREETYPE_H
  146. *
  147. * @description:
  148. * A macro used in #include statements to name the file containing the
  149. * base FreeType 2 API.
  150. *
  151. */
  152. #define FT_FREETYPE_H <freetype/freetype.h>
  153. /*************************************************************************
  154. *
  155. * @macro:
  156. * FT_ERRORS_H
  157. *
  158. * @description:
  159. * A macro used in #include statements to name the file containing the
  160. * list of FreeType 2 error codes (and messages).
  161. *
  162. * It is included by @FT_FREETYPE_H.
  163. *
  164. */
  165. #define FT_ERRORS_H <freetype/fterrors.h>
  166. /*************************************************************************
  167. *
  168. * @macro:
  169. * FT_MODULE_ERRORS_H
  170. *
  171. * @description:
  172. * A macro used in #include statements to name the file containing the
  173. * list of FreeType 2 module error offsets (and messages).
  174. *
  175. */
  176. #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
  177. /*************************************************************************
  178. *
  179. * @macro:
  180. * FT_SYSTEM_H
  181. *
  182. * @description:
  183. * A macro used in #include statements to name the file containing the
  184. * FreeType 2 interface to low-level operations (i.e., memory management
  185. * and stream i/o).
  186. *
  187. * It is included by @FT_FREETYPE_H.
  188. *
  189. */
  190. #define FT_SYSTEM_H <freetype/ftsystem.h>
  191. /*************************************************************************
  192. *
  193. * @macro:
  194. * FT_IMAGE_H
  195. *
  196. * @description:
  197. * A macro used in #include statements to name the file containing type
  198. * definitions related to glyph images (i.e., bitmaps, outlines,
  199. * scan-converter parameters).
  200. *
  201. * It is included by @FT_FREETYPE_H.
  202. *
  203. */
  204. #define FT_IMAGE_H <freetype/ftimage.h>
  205. /*************************************************************************
  206. *
  207. * @macro:
  208. * FT_TYPES_H
  209. *
  210. * @description:
  211. * A macro used in #include statements to name the file containing the
  212. * basic data types defined by FreeType 2.
  213. *
  214. * It is included by @FT_FREETYPE_H.
  215. *
  216. */
  217. #define FT_TYPES_H <freetype/fttypes.h>
  218. /*************************************************************************
  219. *
  220. * @macro:
  221. * FT_LIST_H
  222. *
  223. * @description:
  224. * A macro used in #include statements to name the file containing the
  225. * list management API of FreeType 2.
  226. *
  227. * (Most applications will never need to include this file.)
  228. *
  229. */
  230. #define FT_LIST_H <freetype/ftlist.h>
  231. /*************************************************************************
  232. *
  233. * @macro:
  234. * FT_OUTLINE_H
  235. *
  236. * @description:
  237. * A macro used in #include statements to name the file containing the
  238. * scalable outline management API of FreeType 2.
  239. *
  240. */
  241. #define FT_OUTLINE_H <freetype/ftoutln.h>
  242. /*************************************************************************
  243. *
  244. * @macro:
  245. * FT_SIZES_H
  246. *
  247. * @description:
  248. * A macro used in #include statements to name the file containing the
  249. * API which manages multiple @FT_Size objects per face.
  250. *
  251. */
  252. #define FT_SIZES_H <freetype/ftsizes.h>
  253. /*************************************************************************
  254. *
  255. * @macro:
  256. * FT_MODULE_H
  257. *
  258. * @description:
  259. * A macro used in #include statements to name the file containing the
  260. * module management API of FreeType 2.
  261. *
  262. */
  263. #define FT_MODULE_H <freetype/ftmodapi.h>
  264. /*************************************************************************
  265. *
  266. * @macro:
  267. * FT_RENDER_H
  268. *
  269. * @description:
  270. * A macro used in #include statements to name the file containing the
  271. * renderer module management API of FreeType 2.
  272. *
  273. */
  274. #define FT_RENDER_H <freetype/ftrender.h>
  275. /*************************************************************************
  276. *
  277. * @macro:
  278. * FT_TYPE1_TABLES_H
  279. *
  280. * @description:
  281. * A macro used in #include statements to name the file containing the
  282. * types and API specific to the Type 1 format.
  283. *
  284. */
  285. #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
  286. /*************************************************************************
  287. *
  288. * @macro:
  289. * FT_TRUETYPE_IDS_H
  290. *
  291. * @description:
  292. * A macro used in #include statements to name the file containing the
  293. * enumeration values which identify name strings, languages, encodings,
  294. * etc. This file really contains a _large_ set of constant macro
  295. * definitions, taken from the TrueType and OpenType specifications.
  296. *
  297. */
  298. #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
  299. /*************************************************************************
  300. *
  301. * @macro:
  302. * FT_TRUETYPE_TABLES_H
  303. *
  304. * @description:
  305. * A macro used in #include statements to name the file containing the
  306. * types and API specific to the TrueType (as well as OpenType) format.
  307. *
  308. */
  309. #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
  310. /*************************************************************************
  311. *
  312. * @macro:
  313. * FT_TRUETYPE_TAGS_H
  314. *
  315. * @description:
  316. * A macro used in #include statements to name the file containing the
  317. * definitions of TrueType four-byte `tags' which identify blocks in
  318. * SFNT-based font formats (i.e., TrueType and OpenType).
  319. *
  320. */
  321. #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
  322. /*************************************************************************
  323. *
  324. * @macro:
  325. * FT_BDF_H
  326. *
  327. * @description:
  328. * A macro used in #include statements to name the file containing the
  329. * definitions of an API which accesses BDF-specific strings from a
  330. * face.
  331. *
  332. */
  333. #define FT_BDF_H <freetype/ftbdf.h>
  334. /*************************************************************************
  335. *
  336. * @macro:
  337. * FT_GZIP_H
  338. *
  339. * @description:
  340. * A macro used in #include statements to name the file containing the
  341. * definitions of an API which supports gzip-compressed files.
  342. *
  343. */
  344. #define FT_GZIP_H <freetype/ftgzip.h>
  345. /*************************************************************************
  346. *
  347. * @macro:
  348. * FT_LZW_H
  349. *
  350. * @description:
  351. * A macro used in #include statements to name the file containing the
  352. * definitions of an API which supports LZW-compressed files.
  353. *
  354. */
  355. #define FT_LZW_H <freetype/ftlzw.h>
  356. /*************************************************************************
  357. *
  358. * @macro:
  359. * FT_WINFONTS_H
  360. *
  361. * @description:
  362. * A macro used in #include statements to name the file containing the
  363. * definitions of an API which supports Windows FNT files.
  364. *
  365. */
  366. #define FT_WINFONTS_H <freetype/ftwinfnt.h>
  367. /*************************************************************************
  368. *
  369. * @macro:
  370. * FT_GLYPH_H
  371. *
  372. * @description:
  373. * A macro used in #include statements to name the file containing the
  374. * API of the optional glyph management component.
  375. *
  376. */
  377. #define FT_GLYPH_H <freetype/ftglyph.h>
  378. /*************************************************************************
  379. *
  380. * @macro:
  381. * FT_BITMAP_H
  382. *
  383. * @description:
  384. * A macro used in #include statements to name the file containing the
  385. * API of the optional bitmap conversion component.
  386. *
  387. */
  388. #define FT_BITMAP_H <freetype/ftbitmap.h>
  389. /*************************************************************************
  390. *
  391. * @macro:
  392. * FT_BBOX_H
  393. *
  394. * @description:
  395. * A macro used in #include statements to name the file containing the
  396. * API of the optional exact bounding box computation routines.
  397. *
  398. */
  399. #define FT_BBOX_H <freetype/ftbbox.h>
  400. /*************************************************************************
  401. *
  402. * @macro:
  403. * FT_CACHE_H
  404. *
  405. * @description:
  406. * A macro used in #include statements to name the file containing the
  407. * API of the optional FreeType 2 cache sub-system.
  408. *
  409. */
  410. #define FT_CACHE_H <freetype/ftcache.h>
  411. /*************************************************************************
  412. *
  413. * @macro:
  414. * FT_CACHE_IMAGE_H
  415. *
  416. * @description:
  417. * A macro used in #include statements to name the file containing the
  418. * `glyph image' API of the FreeType 2 cache sub-system.
  419. *
  420. * It is used to define a cache for @FT_Glyph elements. You can also
  421. * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
  422. * store small glyph bitmaps, as it will use less memory.
  423. *
  424. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  425. * glyph image-related cache declarations.
  426. *
  427. */
  428. #define FT_CACHE_IMAGE_H FT_CACHE_H
  429. /*************************************************************************
  430. *
  431. * @macro:
  432. * FT_CACHE_SMALL_BITMAPS_H
  433. *
  434. * @description:
  435. * A macro used in #include statements to name the file containing the
  436. * `small bitmaps' API of the FreeType 2 cache sub-system.
  437. *
  438. * It is used to define a cache for small glyph bitmaps in a relatively
  439. * memory-efficient way. You can also use the API defined in
  440. * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
  441. * including scalable outlines.
  442. *
  443. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  444. * small bitmaps-related cache declarations.
  445. *
  446. */
  447. #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
  448. /*************************************************************************
  449. *
  450. * @macro:
  451. * FT_CACHE_CHARMAP_H
  452. *
  453. * @description:
  454. * A macro used in #include statements to name the file containing the
  455. * `charmap' API of the FreeType 2 cache sub-system.
  456. *
  457. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  458. * charmap-based cache declarations.
  459. *
  460. */
  461. #define FT_CACHE_CHARMAP_H FT_CACHE_H
  462. /*************************************************************************
  463. *
  464. * @macro:
  465. * FT_MAC_H
  466. *
  467. * @description:
  468. * A macro used in #include statements to name the file containing the
  469. * Macintosh-specific FreeType 2 API. The latter is used to access
  470. * fonts embedded in resource forks.
  471. *
  472. * This header file must be explicitly included by client applications
  473. * compiled on the Mac (note that the base API still works though).
  474. *
  475. */
  476. #define FT_MAC_H <freetype/ftmac.h>
  477. /*************************************************************************
  478. *
  479. * @macro:
  480. * FT_MULTIPLE_MASTERS_H
  481. *
  482. * @description:
  483. * A macro used in #include statements to name the file containing the
  484. * optional multiple-masters management API of FreeType 2.
  485. *
  486. */
  487. #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
  488. /*************************************************************************
  489. *
  490. * @macro:
  491. * FT_SFNT_NAMES_H
  492. *
  493. * @description:
  494. * A macro used in #include statements to name the file containing the
  495. * optional FreeType 2 API which accesses embedded `name' strings in
  496. * SFNT-based font formats (i.e., TrueType and OpenType).
  497. *
  498. */
  499. #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
  500. /*************************************************************************
  501. *
  502. * @macro:
  503. * FT_OPENTYPE_VALIDATE_H
  504. *
  505. * @description:
  506. * A macro used in #include statements to name the file containing the
  507. * optional FreeType 2 API which validates OpenType tables (BASE, GDEF,
  508. * GPOS, GSUB, JSTF).
  509. *
  510. */
  511. #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
  512. /*************************************************************************
  513. *
  514. * @macro:
  515. * FT_GX_VALIDATE_H
  516. *
  517. * @description:
  518. * A macro used in #include statements to name the file containing the
  519. * optional FreeType 2 API which validates TrueTypeGX/AAT tables (feat,
  520. * mort, morx, bsln, just, kern, opbd, trak, prop).
  521. *
  522. */
  523. #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
  524. /*************************************************************************
  525. *
  526. * @macro:
  527. * FT_PFR_H
  528. *
  529. * @description:
  530. * A macro used in #include statements to name the file containing the
  531. * FreeType 2 API which accesses PFR-specific data.
  532. *
  533. */
  534. #define FT_PFR_H <freetype/ftpfr.h>
  535. /*************************************************************************
  536. *
  537. * @macro:
  538. * FT_STROKER_H
  539. *
  540. * @description:
  541. * A macro used in #include statements to name the file containing the
  542. * FreeType 2 API which provides functions to stroke outline paths.
  543. */
  544. #define FT_STROKER_H <freetype/ftstroke.h>
  545. /*************************************************************************
  546. *
  547. * @macro:
  548. * FT_SYNTHESIS_H
  549. *
  550. * @description:
  551. * A macro used in #include statements to name the file containing the
  552. * FreeType 2 API which performs artificial obliquing and emboldening.
  553. */
  554. #define FT_SYNTHESIS_H <freetype/ftsynth.h>
  555. /*************************************************************************
  556. *
  557. * @macro:
  558. * FT_XFREE86_H
  559. *
  560. * @description:
  561. * A macro used in #include statements to name the file containing the
  562. * FreeType 2 API which provides functions specific to the XFree86 and
  563. * X.Org X11 servers.
  564. */
  565. #define FT_XFREE86_H <freetype/ftxf86.h>
  566. /*************************************************************************
  567. *
  568. * @macro:
  569. * FT_TRIGONOMETRY_H
  570. *
  571. * @description:
  572. * A macro used in #include statements to name the file containing the
  573. * FreeType 2 API which performs trigonometric computations (e.g.,
  574. * cosines and arc tangents).
  575. */
  576. #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
  577. /*************************************************************************
  578. *
  579. * @macro:
  580. * FT_LCD_FILTER_H
  581. *
  582. * @description:
  583. * A macro used in #include statements to name the file containing the
  584. * FreeType 2 API which performs color filtering for subpixel rendering.
  585. */
  586. #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
  587. /*************************************************************************
  588. *
  589. * @macro:
  590. * FT_GASP_H
  591. *
  592. * @description:
  593. * A macro used in #include statements to name the file containing the
  594. * FreeType 2 API which returns entries from the TrueType GASP table.
  595. */
  596. #define FT_GASP_H <freetype/ftgasp.h>
  597. /* */
  598. #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
  599. /* The internals of the cache sub-system are no longer exposed. We */
  600. /* default to FT_CACHE_H at the moment just in case, but we know of */
  601. /* no rogue client that uses them. */
  602. /* */
  603. #define FT_CACHE_MANAGER_H <freetype/ftcache.h>
  604. #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
  605. #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
  606. #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
  607. #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
  608. #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
  609. #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
  610. #define FT_INCREMENTAL_H <freetype/ftincrem.h>
  611. #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
  612. /*
  613. * Include internal headers definitions from <freetype/internal/...>
  614. * only when building the library.
  615. */
  616. #ifdef FT2_BUILD_LIBRARY
  617. #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
  618. #include FT_INTERNAL_INTERNAL_H
  619. #endif /* FT2_BUILD_LIBRARY */
  620. #endif /* __FT2_BUILD_H__ */
  621. /* END */