ftheader.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:23k
源码类别:

其他游戏

开发平台:

Visual C++

  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 */