/src/compiler/android-ndk/jni/freetype/include/freetype/config/ftheader.h

http://ftk.googlecode.com/ · C++ Header · 780 lines · 81 code · 116 blank · 583 comment · 0 complexity · dc33f5b38b8cc12ad4a2d9d098b75073 MD5 · raw file

  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, 2008 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. /* */
  142. /* public headers */
  143. /*************************************************************************
  144. *
  145. * @macro:
  146. * FT_FREETYPE_H
  147. *
  148. * @description:
  149. * A macro used in #include statements to name the file containing the
  150. * base FreeType~2 API.
  151. *
  152. */
  153. #define FT_FREETYPE_H <freetype/freetype.h>
  154. /*************************************************************************
  155. *
  156. * @macro:
  157. * FT_ERRORS_H
  158. *
  159. * @description:
  160. * A macro used in #include statements to name the file containing the
  161. * list of FreeType~2 error codes (and messages).
  162. *
  163. * It is included by @FT_FREETYPE_H.
  164. *
  165. */
  166. #define FT_ERRORS_H <freetype/fterrors.h>
  167. /*************************************************************************
  168. *
  169. * @macro:
  170. * FT_MODULE_ERRORS_H
  171. *
  172. * @description:
  173. * A macro used in #include statements to name the file containing the
  174. * list of FreeType~2 module error offsets (and messages).
  175. *
  176. */
  177. #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
  178. /*************************************************************************
  179. *
  180. * @macro:
  181. * FT_SYSTEM_H
  182. *
  183. * @description:
  184. * A macro used in #include statements to name the file containing the
  185. * FreeType~2 interface to low-level operations (i.e., memory management
  186. * and stream i/o).
  187. *
  188. * It is included by @FT_FREETYPE_H.
  189. *
  190. */
  191. #define FT_SYSTEM_H <freetype/ftsystem.h>
  192. /*************************************************************************
  193. *
  194. * @macro:
  195. * FT_IMAGE_H
  196. *
  197. * @description:
  198. * A macro used in #include statements to name the file containing type
  199. * definitions related to glyph images (i.e., bitmaps, outlines,
  200. * scan-converter parameters).
  201. *
  202. * It is included by @FT_FREETYPE_H.
  203. *
  204. */
  205. #define FT_IMAGE_H <freetype/ftimage.h>
  206. /*************************************************************************
  207. *
  208. * @macro:
  209. * FT_TYPES_H
  210. *
  211. * @description:
  212. * A macro used in #include statements to name the file containing the
  213. * basic data types defined by FreeType~2.
  214. *
  215. * It is included by @FT_FREETYPE_H.
  216. *
  217. */
  218. #define FT_TYPES_H <freetype/fttypes.h>
  219. /*************************************************************************
  220. *
  221. * @macro:
  222. * FT_LIST_H
  223. *
  224. * @description:
  225. * A macro used in #include statements to name the file containing the
  226. * list management API of FreeType~2.
  227. *
  228. * (Most applications will never need to include this file.)
  229. *
  230. */
  231. #define FT_LIST_H <freetype/ftlist.h>
  232. /*************************************************************************
  233. *
  234. * @macro:
  235. * FT_OUTLINE_H
  236. *
  237. * @description:
  238. * A macro used in #include statements to name the file containing the
  239. * scalable outline management API of FreeType~2.
  240. *
  241. */
  242. #define FT_OUTLINE_H <freetype/ftoutln.h>
  243. /*************************************************************************
  244. *
  245. * @macro:
  246. * FT_SIZES_H
  247. *
  248. * @description:
  249. * A macro used in #include statements to name the file containing the
  250. * API which manages multiple @FT_Size objects per face.
  251. *
  252. */
  253. #define FT_SIZES_H <freetype/ftsizes.h>
  254. /*************************************************************************
  255. *
  256. * @macro:
  257. * FT_MODULE_H
  258. *
  259. * @description:
  260. * A macro used in #include statements to name the file containing the
  261. * module management API of FreeType~2.
  262. *
  263. */
  264. #define FT_MODULE_H <freetype/ftmodapi.h>
  265. /*************************************************************************
  266. *
  267. * @macro:
  268. * FT_RENDER_H
  269. *
  270. * @description:
  271. * A macro used in #include statements to name the file containing the
  272. * renderer module management API of FreeType~2.
  273. *
  274. */
  275. #define FT_RENDER_H <freetype/ftrender.h>
  276. /*************************************************************************
  277. *
  278. * @macro:
  279. * FT_TYPE1_TABLES_H
  280. *
  281. * @description:
  282. * A macro used in #include statements to name the file containing the
  283. * types and API specific to the Type~1 format.
  284. *
  285. */
  286. #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
  287. /*************************************************************************
  288. *
  289. * @macro:
  290. * FT_TRUETYPE_IDS_H
  291. *
  292. * @description:
  293. * A macro used in #include statements to name the file containing the
  294. * enumeration values which identify name strings, languages, encodings,
  295. * etc. This file really contains a _large_ set of constant macro
  296. * definitions, taken from the TrueType and OpenType specifications.
  297. *
  298. */
  299. #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
  300. /*************************************************************************
  301. *
  302. * @macro:
  303. * FT_TRUETYPE_TABLES_H
  304. *
  305. * @description:
  306. * A macro used in #include statements to name the file containing the
  307. * types and API specific to the TrueType (as well as OpenType) format.
  308. *
  309. */
  310. #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
  311. /*************************************************************************
  312. *
  313. * @macro:
  314. * FT_TRUETYPE_TAGS_H
  315. *
  316. * @description:
  317. * A macro used in #include statements to name the file containing the
  318. * definitions of TrueType four-byte `tags' which identify blocks in
  319. * SFNT-based font formats (i.e., TrueType and OpenType).
  320. *
  321. */
  322. #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
  323. /*************************************************************************
  324. *
  325. * @macro:
  326. * FT_BDF_H
  327. *
  328. * @description:
  329. * A macro used in #include statements to name the file containing the
  330. * definitions of an API which accesses BDF-specific strings from a
  331. * face.
  332. *
  333. */
  334. #define FT_BDF_H <freetype/ftbdf.h>
  335. /*************************************************************************
  336. *
  337. * @macro:
  338. * FT_CID_H
  339. *
  340. * @description:
  341. * A macro used in #include statements to name the file containing the
  342. * definitions of an API which access CID font information from a
  343. * face.
  344. *
  345. */
  346. #define FT_CID_H <freetype/ftcid.h>
  347. /*************************************************************************
  348. *
  349. * @macro:
  350. * FT_GZIP_H
  351. *
  352. * @description:
  353. * A macro used in #include statements to name the file containing the
  354. * definitions of an API which supports gzip-compressed files.
  355. *
  356. */
  357. #define FT_GZIP_H <freetype/ftgzip.h>
  358. /*************************************************************************
  359. *
  360. * @macro:
  361. * FT_LZW_H
  362. *
  363. * @description:
  364. * A macro used in #include statements to name the file containing the
  365. * definitions of an API which supports LZW-compressed files.
  366. *
  367. */
  368. #define FT_LZW_H <freetype/ftlzw.h>
  369. /*************************************************************************
  370. *
  371. * @macro:
  372. * FT_WINFONTS_H
  373. *
  374. * @description:
  375. * A macro used in #include statements to name the file containing the
  376. * definitions of an API which supports Windows FNT files.
  377. *
  378. */
  379. #define FT_WINFONTS_H <freetype/ftwinfnt.h>
  380. /*************************************************************************
  381. *
  382. * @macro:
  383. * FT_GLYPH_H
  384. *
  385. * @description:
  386. * A macro used in #include statements to name the file containing the
  387. * API of the optional glyph management component.
  388. *
  389. */
  390. #define FT_GLYPH_H <freetype/ftglyph.h>
  391. /*************************************************************************
  392. *
  393. * @macro:
  394. * FT_BITMAP_H
  395. *
  396. * @description:
  397. * A macro used in #include statements to name the file containing the
  398. * API of the optional bitmap conversion component.
  399. *
  400. */
  401. #define FT_BITMAP_H <freetype/ftbitmap.h>
  402. /*************************************************************************
  403. *
  404. * @macro:
  405. * FT_BBOX_H
  406. *
  407. * @description:
  408. * A macro used in #include statements to name the file containing the
  409. * API of the optional exact bounding box computation routines.
  410. *
  411. */
  412. #define FT_BBOX_H <freetype/ftbbox.h>
  413. /*************************************************************************
  414. *
  415. * @macro:
  416. * FT_CACHE_H
  417. *
  418. * @description:
  419. * A macro used in #include statements to name the file containing the
  420. * API of the optional FreeType~2 cache sub-system.
  421. *
  422. */
  423. #define FT_CACHE_H <freetype/ftcache.h>
  424. /*************************************************************************
  425. *
  426. * @macro:
  427. * FT_CACHE_IMAGE_H
  428. *
  429. * @description:
  430. * A macro used in #include statements to name the file containing the
  431. * `glyph image' API of the FreeType~2 cache sub-system.
  432. *
  433. * It is used to define a cache for @FT_Glyph elements. You can also
  434. * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
  435. * store small glyph bitmaps, as it will use less memory.
  436. *
  437. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  438. * glyph image-related cache declarations.
  439. *
  440. */
  441. #define FT_CACHE_IMAGE_H FT_CACHE_H
  442. /*************************************************************************
  443. *
  444. * @macro:
  445. * FT_CACHE_SMALL_BITMAPS_H
  446. *
  447. * @description:
  448. * A macro used in #include statements to name the file containing the
  449. * `small bitmaps' API of the FreeType~2 cache sub-system.
  450. *
  451. * It is used to define a cache for small glyph bitmaps in a relatively
  452. * memory-efficient way. You can also use the API defined in
  453. * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
  454. * including scalable outlines.
  455. *
  456. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  457. * small bitmaps-related cache declarations.
  458. *
  459. */
  460. #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
  461. /*************************************************************************
  462. *
  463. * @macro:
  464. * FT_CACHE_CHARMAP_H
  465. *
  466. * @description:
  467. * A macro used in #include statements to name the file containing the
  468. * `charmap' API of the FreeType~2 cache sub-system.
  469. *
  470. * This macro is deprecated. Simply include @FT_CACHE_H to have all
  471. * charmap-based cache declarations.
  472. *
  473. */
  474. #define FT_CACHE_CHARMAP_H FT_CACHE_H
  475. /*************************************************************************
  476. *
  477. * @macro:
  478. * FT_MAC_H
  479. *
  480. * @description:
  481. * A macro used in #include statements to name the file containing the
  482. * Macintosh-specific FreeType~2 API. The latter is used to access
  483. * fonts embedded in resource forks.
  484. *
  485. * This header file must be explicitly included by client applications
  486. * compiled on the Mac (note that the base API still works though).
  487. *
  488. */
  489. #define FT_MAC_H <freetype/ftmac.h>
  490. /*************************************************************************
  491. *
  492. * @macro:
  493. * FT_MULTIPLE_MASTERS_H
  494. *
  495. * @description:
  496. * A macro used in #include statements to name the file containing the
  497. * optional multiple-masters management API of FreeType~2.
  498. *
  499. */
  500. #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
  501. /*************************************************************************
  502. *
  503. * @macro:
  504. * FT_SFNT_NAMES_H
  505. *
  506. * @description:
  507. * A macro used in #include statements to name the file containing the
  508. * optional FreeType~2 API which accesses embedded `name' strings in
  509. * SFNT-based font formats (i.e., TrueType and OpenType).
  510. *
  511. */
  512. #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
  513. /*************************************************************************
  514. *
  515. * @macro:
  516. * FT_OPENTYPE_VALIDATE_H
  517. *
  518. * @description:
  519. * A macro used in #include statements to name the file containing the
  520. * optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
  521. * GPOS, GSUB, JSTF).
  522. *
  523. */
  524. #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
  525. /*************************************************************************
  526. *
  527. * @macro:
  528. * FT_GX_VALIDATE_H
  529. *
  530. * @description:
  531. * A macro used in #include statements to name the file containing the
  532. * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
  533. * mort, morx, bsln, just, kern, opbd, trak, prop).
  534. *
  535. */
  536. #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
  537. /*************************************************************************
  538. *
  539. * @macro:
  540. * FT_PFR_H
  541. *
  542. * @description:
  543. * A macro used in #include statements to name the file containing the
  544. * FreeType~2 API which accesses PFR-specific data.
  545. *
  546. */
  547. #define FT_PFR_H <freetype/ftpfr.h>
  548. /*************************************************************************
  549. *
  550. * @macro:
  551. * FT_STROKER_H
  552. *
  553. * @description:
  554. * A macro used in #include statements to name the file containing the
  555. * FreeType~2 API which provides functions to stroke outline paths.
  556. */
  557. #define FT_STROKER_H <freetype/ftstroke.h>
  558. /*************************************************************************
  559. *
  560. * @macro:
  561. * FT_SYNTHESIS_H
  562. *
  563. * @description:
  564. * A macro used in #include statements to name the file containing the
  565. * FreeType~2 API which performs artificial obliquing and emboldening.
  566. */
  567. #define FT_SYNTHESIS_H <freetype/ftsynth.h>
  568. /*************************************************************************
  569. *
  570. * @macro:
  571. * FT_XFREE86_H
  572. *
  573. * @description:
  574. * A macro used in #include statements to name the file containing the
  575. * FreeType~2 API which provides functions specific to the XFree86 and
  576. * X.Org X11 servers.
  577. */
  578. #define FT_XFREE86_H <freetype/ftxf86.h>
  579. /*************************************************************************
  580. *
  581. * @macro:
  582. * FT_TRIGONOMETRY_H
  583. *
  584. * @description:
  585. * A macro used in #include statements to name the file containing the
  586. * FreeType~2 API which performs trigonometric computations (e.g.,
  587. * cosines and arc tangents).
  588. */
  589. #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
  590. /*************************************************************************
  591. *
  592. * @macro:
  593. * FT_LCD_FILTER_H
  594. *
  595. * @description:
  596. * A macro used in #include statements to name the file containing the
  597. * FreeType~2 API which performs color filtering for subpixel rendering.
  598. */
  599. #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
  600. /*************************************************************************
  601. *
  602. * @macro:
  603. * FT_UNPATENTED_HINTING_H
  604. *
  605. * @description:
  606. * A macro used in #include statements to name the file containing the
  607. * FreeType~2 API which performs color filtering for subpixel rendering.
  608. */
  609. #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
  610. /*************************************************************************
  611. *
  612. * @macro:
  613. * FT_INCREMENTAL_H
  614. *
  615. * @description:
  616. * A macro used in #include statements to name the file containing the
  617. * FreeType~2 API which performs color filtering for subpixel rendering.
  618. */
  619. #define FT_INCREMENTAL_H <freetype/ftincrem.h>
  620. /*************************************************************************
  621. *
  622. * @macro:
  623. * FT_GASP_H
  624. *
  625. * @description:
  626. * A macro used in #include statements to name the file containing the
  627. * FreeType~2 API which returns entries from the TrueType GASP table.
  628. */
  629. #define FT_GASP_H <freetype/ftgasp.h>
  630. /*************************************************************************
  631. *
  632. * @macro:
  633. * FT_ADVANCES_H
  634. *
  635. * @description:
  636. * A macro used in #include statements to name the file containing the
  637. * FreeType~2 API which returns individual and ranged glyph advances.
  638. */
  639. #define FT_ADVANCES_H <freetype/ftadvanc.h>
  640. /* */
  641. #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
  642. /* The internals of the cache sub-system are no longer exposed. We */
  643. /* default to FT_CACHE_H at the moment just in case, but we know of */
  644. /* no rogue client that uses them. */
  645. /* */
  646. #define FT_CACHE_MANAGER_H <freetype/ftcache.h>
  647. #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
  648. #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
  649. #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
  650. #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
  651. #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
  652. #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
  653. #define FT_INCREMENTAL_H <freetype/ftincrem.h>
  654. #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
  655. /*
  656. * Include internal headers definitions from <freetype/internal/...>
  657. * only when building the library.
  658. */
  659. #ifdef FT2_BUILD_LIBRARY
  660. #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
  661. #include FT_INTERNAL_INTERNAL_H
  662. #endif /* FT2_BUILD_LIBRARY */
  663. #endif /* __FT2_BUILD_H__ */
  664. /* END */