tttypes.h

来自「gaca源码」· C头文件 代码 · 共 1,192 行 · 第 1/5 页

H
1,192
字号
  } TT_CMap2Rec, *TT_CMap2;


  /* format 4 */

  typedef struct  TT_CMap4Segment_
  {
    FT_UShort  endCount;
    FT_UShort  startCount;
    FT_Short   idDelta;
    FT_UShort  idRangeOffset;

  } TT_CMap4SegmentRec, *TT_CMap4Segment;


  typedef struct  TT_CMap4Rec_
  {
    FT_ULong         language;       /* for Mac fonts (originally ushort) */

    FT_UShort        segCountX2;     /* number of segments * 2            */
    FT_UShort        searchRange;    /* these parameters can be used      */
    FT_UShort        entrySelector;  /* for a binary search               */
    FT_UShort        rangeShift;

    TT_CMap4Segment  segments;
    FT_UShort*       glyphIdArray;
    FT_UShort        numGlyphId;     /* control value */

    TT_CMap4Segment  last_segment;   /* last used segment; this is a small  */
                                     /* cache to potentially increase speed */
  } TT_CMap4Rec, *TT_CMap4;


  /* format 6 */

  typedef struct  TT_CMap6_
  {
    FT_ULong    language;       /* for Mac fonts (originally ushort)     */

    FT_UShort   firstCode;      /* first character code of subrange      */
    FT_UShort   entryCount;     /* number of character codes in subrange */

    FT_UShort*  glyphIdArray;

  } TT_CMap6Rec, *TT_CMap6;


  /* auxiliary table for format 8 and 12 */

  typedef struct  TT_CMapGroupRec_
  {
    FT_ULong  startCharCode;
    FT_ULong  endCharCode;
    FT_ULong  startGlyphID;

  } TT_CMapGroupRec, *TT_CMapGroup;


  /* FreeType handles format 8 and 12 identically.  It is not necessary to
     cover mixed 16bit and 32bit codes since FreeType always uses FT_ULong
     for input character codes -- converting Unicode surrogates to 32bit
     character codes must be done by the application.                      */

  typedef struct  TT_CMap8_12Rec_
  {
    FT_ULong      language;        /* for Mac fonts */

    FT_ULong      nGroups;
    TT_CMapGroup  groups;

    TT_CMapGroup  last_group;      /* last used group; this is a small    */
                                   /* cache to potentially increase speed */
  } TT_CMap8_12Rec, *TT_CMap8_12;


  /* format 10 */

  typedef struct  TT_CMap10Rec_
  {
    FT_ULong    language;           /* for Mac fonts */

    FT_ULong    startCharCode;      /* first character covered */
    FT_ULong    numChars;           /* number of characters covered */

    FT_UShort*  glyphs;

  } TT_CMap10Rec, *TT_CMap10;


  typedef struct TT_CMapTableRec_*  TT_CMapTable;


  typedef FT_UInt
  (*TT_CharMap_Func)( TT_CMapTable  charmap,
                      FT_ULong      char_code );

  typedef FT_ULong
  (*TT_CharNext_Func)( TT_CMapTable  charmap,
                       FT_ULong      char_code );


  /* charmap table */
  typedef struct  TT_CMapTableRec_
  {
    FT_UShort  platformID;
    FT_UShort  platformEncodingID;
    FT_UShort  format;
    FT_ULong   length;          /* must be ulong for formats 8, 10, and 12 */

    FT_Bool    loaded;
    FT_ULong   offset;

    union
    {
      TT_CMap0Rec     cmap0;
      TT_CMap2Rec     cmap2;
      TT_CMap4Rec     cmap4;
      TT_CMap6Rec     cmap6;
      TT_CMap8_12Rec  cmap8_12;
      TT_CMap10Rec    cmap10;
    } c;

    TT_CharMap_Func   get_index;
    TT_CharNext_Func  get_next_char;

  } TT_CMapTableRec;


  /*************************************************************************/
  /*                                                                       */
  /* <Struct>                                                              */
  /*    TT_CharMapRec                                                      */
  /*                                                                       */
  /* <Description>                                                         */
  /*    The TrueType character map object type.                            */
  /*                                                                       */
  /* <Fields>                                                              */
  /*    root :: The parent character map structure.                        */
  /*                                                                       */
  /*    cmap :: The used character map.                                    */
  /*                                                                       */
  typedef struct  TT_CharMapRec_
  {
    FT_CharMapRec    root;
    TT_CMapTableRec  cmap;

  } TT_CharMapRec;


  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/
  /***                                                                   ***/
  /***                                                                   ***/
  /***                  ORIGINAL TT_FACE CLASS DEFINITION                ***/
  /***                                                                   ***/
  /***                                                                   ***/
  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/


  /*************************************************************************/
  /*                                                                       */
  /* This structure/class is defined here because it is common to the      */
  /* following formats: TTF, OpenType-TT, and OpenType-CFF.                */
  /*                                                                       */
  /* Note, however, that the classes TT_Size, TT_GlyphSlot, and TT_CharMap */
  /* are not shared between font drivers, and are thus defined in          */
  /* `ttobjs.h'.                                                           */
  /*                                                                       */
  /*************************************************************************/


  /*************************************************************************/
  /*                                                                       */
  /* <Type>                                                                */
  /*    TT_Face                                                            */
  /*                                                                       */
  /* <Description>                                                         */
  /*    A handle to a TrueType face/font object.  A TT_Face encapsulates   */
  /*    the resolution and scaling independent parts of a TrueType font    */
  /*    resource.                                                          */
  /*                                                                       */
  /* <Note>                                                                */
  /*    The TT_Face structure is also used as a `parent class' for the     */
  /*    OpenType-CFF class (T2_Face).                                      */
  /*                                                                       */
  typedef struct TT_FaceRec_*  TT_Face;


  /*************************************************************************/
  /*                                                                       */
  /* <Type>                                                                */
  /*    TT_CharMap                                                         */
  /*                                                                       */
  /* <Description>                                                         */
  /*    A handle to a TrueType character mapping object.                   */
  /*                                                                       */
  typedef struct TT_CharMapRec_*  TT_CharMap;


  /* a function type used for the truetype bytecode interpreter hooks */
  typedef FT_Error
  (*TT_Interpreter)( void*  exec_context );

  /* forward declaration */
  typedef struct TT_LoaderRec_*  TT_Loader;


  /*************************************************************************/
  /*                                                                       */
  /* <FuncType>                                                            */
  /*    TT_Loader_GotoTableFunc                                            */
  /*                                                                       */
  /* <Description>                                                         */
  /*    Seeks a stream to the start of a given TrueType table.             */
  /*                                                                       */
  /* <Input>                                                               */
  /*    face   :: A handle to the target face object.                      */
  /*                                                                       */
  /*    tag    :: A 4-byte tag used to name the table.                     */
  /*                                                                       */
  /*    stream :: The input stream.                                        */
  /*                                                                       */
  /* <Output>                                                              */
  /*    length :: The length of the table in bytes.  Set to 0 if not       */
  /*              needed.                                                  */
  /*                                                                       */
  /* <Return>                                                              */
  /*    FreeType error code.  0 means success.                             */
  /*                                                                       */
  /* <Note>                                                                */
  /*    The stream cursor must be at the font file's origin.               */
  /*                                                                       */
  typed

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?