fontservices/freetypefontrasteriser/freetype2/include/freetype/internal/sfnt.h
author hgs
Wed, 27 Oct 2010 16:14:22 +0800
changeset 71 6cc5529d4a89
permissions -rw-r--r--
201033_10
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
71
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     1
/***************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     2
/*                                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     3
/*  sfnt.h                                                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     4
/*                                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     5
/*    High-level `sfnt' driver interface (specification).                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     6
/*                                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     7
/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 by                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
     9
/*                                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    10
/*  This file is part of the FreeType project, and may only be used,       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    11
/*  modified, and distributed under the terms of the FreeType project      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    12
/*  license, FTL.TXT.  By continuing to use, modify, or distribute     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    13
/*  this file you indicate that you have read the license and              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    14
/*  understand and accept it fully.                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    15
/*                                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    16
/***************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    17
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    18
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    19
#ifndef __SFNT_H__
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    20
#define __SFNT_H__
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    21
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    22
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    23
#include <ft2build.h>
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    24
#include FT_INTERNAL_DRIVER_H
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    25
#include FT_INTERNAL_TRUETYPE_TYPES_H
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    26
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    27
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    28
FT_BEGIN_HEADER
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    29
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    30
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    31
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    32
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    33
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    34
  /*    TT_Init_Face_Func                                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    35
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    36
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    37
  /*    First part of the SFNT face object initialization.  This finds     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    38
  /*    the face in a SFNT file or collection, and load its format tag in  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    39
  /*    face->format_tag.                                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    40
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    41
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    42
  /*    stream     :: The input stream.                                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    43
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    44
  /*    face       :: A handle to the target face object.                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    45
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    46
  /*    face_index :: The index of the TrueType font, if we are opening a  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    47
  /*                  collection.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    48
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    49
  /*    num_params :: The number of additional parameters.                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    50
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    51
  /*    params     :: Optional additional parameters.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    52
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    53
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    54
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    55
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    56
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    57
  /*    The stream cursor must be at the font file's origin.               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    58
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    59
  /*    This function recognizes fonts embedded in a `TrueType             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    60
  /*    collection'.                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    61
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    62
  /*    Once the format tag has been validated by the font driver, it      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    63
  /*    should then call the TT_Load_Face_Func() callback to read the rest */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    64
  /*    of the SFNT tables in the object.                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    65
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    66
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    67
  (*TT_Init_Face_Func)( FT_Stream      stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    68
                        TT_Face        face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    69
                        FT_Int         face_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    70
                        FT_Int         num_params,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    71
                        FT_Parameter*  params );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    72
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    73
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    74
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    75
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    76
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    77
  /*    TT_Load_Face_Func                                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    78
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    79
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    80
  /*    Second part of the SFNT face object initialization.  This loads    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    81
  /*    the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    82
  /*    face object.                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    83
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    84
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    85
  /*    stream     :: The input stream.                                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    86
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    87
  /*    face       :: A handle to the target face object.                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    88
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    89
  /*    face_index :: The index of the TrueType font, if we are opening a  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    90
  /*                  collection.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    91
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    92
  /*    num_params :: The number of additional parameters.                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    93
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    94
  /*    params     :: Optional additional parameters.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    95
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    96
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    97
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    98
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
    99
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   100
  /*    This function must be called after TT_Init_Face_Func().            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   101
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   102
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   103
  (*TT_Load_Face_Func)( FT_Stream      stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   104
                        TT_Face        face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   105
                        FT_Int         face_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   106
                        FT_Int         num_params,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   107
                        FT_Parameter*  params );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   108
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   109
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   110
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   111
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   112
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   113
  /*    TT_Done_Face_Func                                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   114
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   115
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   116
  /*    A callback used to delete the common SFNT data from a face.        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   117
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   118
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   119
  /*    face :: A handle to the target face object.                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   120
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   121
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   122
  /*    This function does NOT destroy the face object.                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   123
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   124
  typedef void
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   125
  (*TT_Done_Face_Func)( TT_Face  face );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   126
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   127
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   128
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   129
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   130
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   131
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   132
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   133
  /*    TT_Load_SFNT_HeaderRec_Func                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   134
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   135
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   136
  /*    Loads the header of a SFNT font file.  Supports collections.       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   137
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   138
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   139
  /*    face       :: A handle to the target face object.                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   140
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   141
  /*    stream     :: The input stream.                                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   142
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   143
  /*    face_index :: The index of the TrueType font, if we are opening a  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   144
  /*                  collection.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   145
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   146
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   147
  /*    sfnt       :: The SFNT header.                                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   148
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   149
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   150
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   151
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   152
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   153
  /*    The stream cursor must be at the font file's origin.               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   154
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   155
  /*    This function recognizes fonts embedded in a `TrueType             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   156
  /*    collection'.                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   157
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   158
  /*    This function checks that the header is valid by looking at the    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   159
  /*    values of `search_range', `entry_selector', and `range_shift'.     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   160
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   161
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   162
  (*TT_Load_SFNT_HeaderRec_Func)( TT_Face      face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   163
                                  FT_Stream    stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   164
                                  FT_Long      face_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   165
                                  SFNT_Header  sfnt );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   166
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   167
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   168
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   169
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   170
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   171
  /*    TT_Load_Directory_Func                                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   172
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   173
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   174
  /*    Loads the table directory into a face object.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   175
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   176
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   177
  /*    face   :: A handle to the target face object.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   178
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   179
  /*    stream :: The input stream.                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   180
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   181
  /*    sfnt   :: The SFNT header.                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   182
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   183
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   184
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   185
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   186
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   187
  /*    The stream cursor must be on the first byte after the 4-byte font  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   188
  /*    format tag.  This is the case just after a call to                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   189
  /*    TT_Load_Format_Tag().                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   190
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   191
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   192
  (*TT_Load_Directory_Func)( TT_Face      face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   193
                             FT_Stream    stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   194
                             SFNT_Header  sfnt );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   195
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   196
#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   197
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   198
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   199
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   200
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   201
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   202
  /*    TT_Load_Any_Func                                                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   203
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   204
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   205
  /*    Load any font table into client memory.                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   206
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   207
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   208
  /*    face   :: The face object to look for.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   209
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   210
  /*    tag    :: The tag of table to load.  Use the value 0 if you want   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   211
  /*              to access the whole font file, else set this parameter   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   212
  /*              to a valid TrueType table tag that you can forge with    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   213
  /*              the MAKE_TT_TAG macro.                                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   214
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   215
  /*    offset :: The starting offset in the table (or the file if         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   216
  /*              tag == 0).                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   217
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   218
  /*    length :: The address of the decision variable:                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   219
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   220
  /*                If length == NULL:                                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   221
  /*                  Loads the whole table.  Returns an error if          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   222
  /*                  `offset' == 0!                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   223
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   224
  /*                If *length == 0:                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   225
  /*                  Exits immediately; returning the length of the given */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   226
  /*                  table or of the font file, depending on the value of */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   227
  /*                  `tag'.                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   228
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   229
  /*                If *length != 0:                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   230
  /*                  Loads the next `length' bytes of table or font,      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   231
  /*                  starting at offset `offset' (in table or font too).  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   232
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   233
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   234
  /*    buffer :: The address of target buffer.                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   235
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   236
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   237
  /*    TrueType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   238
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   239
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   240
  (*TT_Load_Any_Func)( TT_Face    face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   241
                       FT_ULong   tag,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   242
                       FT_Long    offset,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   243
                       FT_Byte   *buffer,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   244
                       FT_ULong*  length );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   245
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   246
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   247
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   248
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   249
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   250
  /*    TT_Find_SBit_Image_Func                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   251
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   252
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   253
  /*    Check whether an embedded bitmap (an `sbit') exists for a given    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   254
  /*    glyph, at a given strike.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   255
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   256
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   257
  /*    face          :: The target face object.                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   258
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   259
  /*    glyph_index   :: The glyph index.                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   260
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   261
  /*    strike_index  :: The current strike index.                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   262
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   263
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   264
  /*    arange        :: The SBit range containing the glyph index.        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   265
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   266
  /*    astrike       :: The SBit strike containing the glyph index.       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   267
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   268
  /*    aglyph_offset :: The offset of the glyph data in `EBDT' table.     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   269
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   270
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   271
  /*    FreeType error code.  0 means success.  Returns                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   272
  /*    SFNT_Err_Invalid_Argument if no sbit exists for the requested      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   273
  /*    glyph.                                                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   274
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   275
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   276
  (*TT_Find_SBit_Image_Func)( TT_Face          face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   277
                              FT_UInt          glyph_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   278
                              FT_ULong         strike_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   279
                              TT_SBit_Range   *arange,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   280
                              TT_SBit_Strike  *astrike,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   281
                              FT_ULong        *aglyph_offset );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   282
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   283
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   284
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   285
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   286
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   287
  /*    TT_Load_SBit_Metrics_Func                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   288
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   289
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   290
  /*    Get the big metrics for a given embedded bitmap.                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   291
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   292
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   293
  /*    stream      :: The input stream.                                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   294
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   295
  /*    range       :: The SBit range containing the glyph.                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   296
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   297
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   298
  /*    big_metrics :: A big SBit metrics structure for the glyph.         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   299
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   300
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   301
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   302
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   303
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   304
  /*    The stream cursor must be positioned at the glyph's offset within  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   305
  /*    the `EBDT' table before the call.                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   306
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   307
  /*    If the image format uses variable metrics, the stream cursor is    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   308
  /*    positioned just after the metrics header in the `EBDT' table on    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   309
  /*    function exit.                                                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   310
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   311
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   312
  (*TT_Load_SBit_Metrics_Func)( FT_Stream        stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   313
                                TT_SBit_Range    range,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   314
                                TT_SBit_Metrics  metrics );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   315
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   316
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   317
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   318
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   319
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   320
  /*    TT_Load_SBit_Image_Func                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   321
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   322
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   323
  /*    Load a given glyph sbit image from the font resource.  This also   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   324
  /*    returns its metrics.                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   325
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   326
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   327
  /*    face ::                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   328
  /*      The target face object.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   329
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   330
  /*    strike_index ::                                                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   331
  /*      The strike index.                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   332
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   333
  /*    glyph_index ::                                                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   334
  /*      The current glyph index.                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   335
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   336
  /*    load_flags ::                                                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   337
  /*      The current load flags.                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   338
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   339
  /*    stream ::                                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   340
  /*      The input stream.                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   341
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   342
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   343
  /*    amap ::                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   344
  /*      The target pixmap.                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   345
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   346
  /*    ametrics ::                                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   347
  /*      A big sbit metrics structure for the glyph image.                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   348
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   349
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   350
  /*    FreeType error code.  0 means success.  Returns an error if no     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   351
  /*    glyph sbit exists for the index.                                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   352
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   353
  /*  <Note>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   354
  /*    The `map.buffer' field is always freed before the glyph is loaded. */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   355
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   356
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   357
  (*TT_Load_SBit_Image_Func)( TT_Face              face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   358
                              FT_ULong             strike_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   359
                              FT_UInt              glyph_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   360
                              FT_UInt              load_flags,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   361
                              FT_Stream            stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   362
                              FT_Bitmap           *amap,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   363
                              TT_SBit_MetricsRec  *ametrics );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   364
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   365
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   366
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   367
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   368
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   369
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   370
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   371
  /*    TT_Set_SBit_Strike_OldFunc                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   372
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   373
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   374
  /*    Select an sbit strike for a given size request.                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   375
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   376
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   377
  /*    face          :: The target face object.                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   378
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   379
  /*    req           :: The size request.                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   380
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   381
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   382
  /*    astrike_index :: The index of the sbit strike.                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   383
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   384
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   385
  /*    FreeType error code.  0 means success.  Returns an error if no     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   386
  /*    sbit strike exists for the selected ppem values.                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   387
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   388
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   389
  (*TT_Set_SBit_Strike_OldFunc)( TT_Face    face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   390
                                 FT_UInt    x_ppem,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   391
                                 FT_UInt    y_ppem,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   392
                                 FT_ULong*  astrike_index );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   393
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   394
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   395
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   396
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   397
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   398
  /*    TT_CharMap_Load_Func                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   399
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   400
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   401
  /*    Loads a given TrueType character map into memory.                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   402
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   403
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   404
  /*    face   :: A handle to the parent face object.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   405
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   406
  /*    stream :: A handle to the current stream object.                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   407
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   408
  /* <InOut>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   409
  /*    cmap   :: A pointer to a cmap object.                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   410
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   411
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   412
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   413
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   414
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   415
  /*    The function assumes that the stream is already in use (i.e.,      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   416
  /*    opened).  In case of error, all partially allocated tables are     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   417
  /*    released.                                                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   418
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   419
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   420
  (*TT_CharMap_Load_Func)( TT_Face    face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   421
                           void*      cmap,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   422
                           FT_Stream  input );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   423
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   424
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   425
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   426
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   427
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   428
  /*    TT_CharMap_Free_Func                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   429
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   430
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   431
  /*    Destroys a character mapping table.                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   432
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   433
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   434
  /*    face :: A handle to the parent face object.                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   435
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   436
  /*    cmap :: A handle to a cmap object.                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   437
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   438
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   439
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   440
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   441
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   442
  (*TT_CharMap_Free_Func)( TT_Face       face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   443
                           void*         cmap );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   444
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   445
#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   446
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   447
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   448
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   449
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   450
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   451
  /*    TT_Set_SBit_Strike_Func                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   452
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   453
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   454
  /*    Select an sbit strike for a given size request.                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   455
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   456
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   457
  /*    face          :: The target face object.                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   458
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   459
  /*    req           :: The size request.                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   460
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   461
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   462
  /*    astrike_index :: The index of the sbit strike.                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   463
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   464
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   465
  /*    FreeType error code.  0 means success.  Returns an error if no     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   466
  /*    sbit strike exists for the selected ppem values.                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   467
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   468
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   469
  (*TT_Set_SBit_Strike_Func)( TT_Face          face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   470
                              FT_Size_Request  req,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   471
                              FT_ULong*        astrike_index );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   472
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   473
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   474
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   475
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   476
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   477
  /*    TT_Load_Strike_Metrics_Func                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   478
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   479
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   480
  /*    Load the metrics of a given strike.                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   481
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   482
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   483
  /*    face          :: The target face object.                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   484
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   485
  /*    strike_index  :: The strike index.                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   486
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   487
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   488
  /*    metrics       :: the metrics of the strike.                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   489
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   490
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   491
  /*    FreeType error code.  0 means success.  Returns an error if no     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   492
  /*    such sbit strike exists.                                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   493
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   494
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   495
  (*TT_Load_Strike_Metrics_Func)( TT_Face           face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   496
                                  FT_ULong          strike_index,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   497
                                  FT_Size_Metrics*  metrics );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   498
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   499
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   500
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   501
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   502
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   503
  /*    TT_Get_PS_Name_Func                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   504
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   505
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   506
  /*    Get the PostScript glyph name of a glyph.                          */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   507
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   508
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   509
  /*    idx  :: The glyph index.                                           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   510
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   511
  /*    PSname :: The address of a string pointer.  Will be NULL in case   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   512
  /*              of error, otherwise it is a pointer to the glyph name.   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   513
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   514
  /*              You must not modify the returned string!                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   515
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   516
  /* <Output>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   517
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   518
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   519
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   520
  (*TT_Get_PS_Name_Func)( TT_Face      face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   521
                          FT_UInt      idx,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   522
                          FT_String**  PSname );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   523
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   524
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   525
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   526
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   527
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   528
  /*    TT_Load_Metrics_Func                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   529
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   530
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   531
  /*    Load a metrics table, which is a table with a horizontal and a     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   532
  /*    vertical version.                                                  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   533
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   534
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   535
  /*    face     :: A handle to the target face object.                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   536
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   537
  /*    stream   :: The input stream.                                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   538
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   539
  /*    vertical :: A boolean flag.  If set, load the vertical one.        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   540
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   541
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   542
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   543
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   544
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   545
  (*TT_Load_Metrics_Func)( TT_Face    face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   546
                           FT_Stream  stream,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   547
                           FT_Bool    vertical );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   548
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   549
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   550
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   551
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   552
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   553
  /*    TT_Get_Metrics_Func                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   554
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   555
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   556
  /*    Load the horizontal or vertical header in a face object.           */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   557
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   558
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   559
  /*    face     :: A handle to the target face object.                    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   560
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   561
  /*    stream   :: The input stream.                                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   562
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   563
  /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   564
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   565
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   566
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   567
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   568
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   569
  (*TT_Get_Metrics_Func)( TT_Face     face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   570
                          FT_Bool     vertical,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   571
                          FT_UInt     gindex,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   572
                          FT_Short*   abearing,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   573
                          FT_UShort*  aadvance );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   574
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   575
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   576
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   577
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   578
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   579
  /*    TT_Load_Table_Func                                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   580
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   581
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   582
  /*    Load a given TrueType table.                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   583
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   584
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   585
  /*    face   :: A handle to the target face object.                      */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   586
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   587
  /*    stream :: The input stream.                                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   588
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   589
  /* <Return>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   590
  /*    FreeType error code.  0 means success.                             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   591
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   592
  /* <Note>                                                                */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   593
  /*    The function uses `face->goto_table' to seek the stream to the     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   594
  /*    start of the table, except while loading the font directory.       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   595
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   596
  typedef FT_Error
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   597
  (*TT_Load_Table_Func)( TT_Face    face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   598
                         FT_Stream  stream );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   599
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   600
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   601
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   602
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   603
  /* <FuncType>                                                            */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   604
  /*    TT_Free_Table_Func                                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   605
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   606
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   607
  /*    Free a given TrueType table.                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   608
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   609
  /* <Input>                                                               */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   610
  /*    face :: A handle to the target face object.                        */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   611
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   612
  typedef void
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   613
  (*TT_Free_Table_Func)( TT_Face  face );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   614
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   615
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   616
  /*
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   617
   * @functype:
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   618
   *    TT_Face_GetKerningFunc
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   619
   *
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   620
   * @description:
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   621
   *    Return the horizontal kerning value between two glyphs.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   622
   *
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   623
   * @input:
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   624
   *    face        :: A handle to the source face object.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   625
   *    left_glyph  :: The left glyph index.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   626
   *    right_glyph :: The right glyph index.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   627
   *
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   628
   * @return:
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   629
   *    The kerning value in font units.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   630
   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   631
  typedef FT_Int
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   632
  (*TT_Face_GetKerningFunc)( TT_Face  face,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   633
                             FT_UInt  left_glyph,
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   634
                             FT_UInt  right_glyph );
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   635
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   636
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   637
  /*************************************************************************/
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   638
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   639
  /* <Struct>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   640
  /*    SFNT_Interface                                                     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   641
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   642
  /* <Description>                                                         */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   643
  /*    This structure holds pointers to the functions used to load and    */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   644
  /*    free the basic tables that are required in a `sfnt' font file.     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   645
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   646
  /* <Fields>                                                              */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   647
  /*    Check the various xxx_Func() descriptions for details.             */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   648
  /*                                                                       */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   649
  typedef struct  SFNT_Interface_
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   650
  {
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   651
    TT_Loader_GotoTableFunc      goto_table;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   652
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   653
    TT_Init_Face_Func            init_face;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   654
    TT_Load_Face_Func            load_face;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   655
    TT_Done_Face_Func            done_face;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   656
    FT_Module_Requester          get_interface;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   657
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   658
    TT_Load_Any_Func             load_any;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   659
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   660
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   661
    TT_Load_SFNT_HeaderRec_Func  load_sfnt_header;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   662
    TT_Load_Directory_Func       load_directory;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   663
#endif
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   664
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   665
    /* these functions are called by `load_face' but they can also  */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   666
    /* be called from external modules, if there is a need to do so */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   667
    TT_Load_Table_Func           load_head;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   668
    TT_Load_Metrics_Func         load_hhea;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   669
    TT_Load_Table_Func           load_cmap;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   670
    TT_Load_Table_Func           load_maxp;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   671
    TT_Load_Table_Func           load_os2;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   672
    TT_Load_Table_Func           load_post;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   673
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   674
    TT_Load_Table_Func           load_name;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   675
    TT_Free_Table_Func           free_name;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   676
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   677
    /* optional tables */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   678
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   679
    TT_Load_Table_Func           load_hdmx_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   680
    TT_Free_Table_Func           free_hdmx_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   681
#endif
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   682
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   683
    /* this field was called `load_kerning' up to version 2.1.10 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   684
    TT_Load_Table_Func           load_kern;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   685
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   686
    TT_Load_Table_Func           load_gasp;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   687
    TT_Load_Table_Func           load_pclt;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   688
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   689
    /* see `ttload.h'; this field was called `load_bitmap_header' up to */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   690
    /* version 2.1.10                                                   */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   691
    TT_Load_Table_Func           load_bhed;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   692
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   693
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   694
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   695
    /* see `ttsbit.h' */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   696
    TT_Set_SBit_Strike_OldFunc   set_sbit_strike_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   697
    TT_Load_Table_Func           load_sbits_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   698
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   699
    /*
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   700
     *  The following two fields appeared in version 2.1.8, and were placed
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   701
     *  between `load_sbits' and `load_sbit_image'.  We support them as a
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   702
     *  special exception since they are used by Xfont library within the
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   703
     *  X.Org xserver, and because the probability that other rogue clients
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   704
     *  use the other version 2.1.7 fields below is _extremely_ low.
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   705
     *
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   706
     *  Note that this forces us to disable an interesting memory-saving
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   707
     *  optimization though...
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   708
     */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   709
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   710
    TT_Find_SBit_Image_Func      find_sbit_image;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   711
    TT_Load_SBit_Metrics_Func    load_sbit_metrics;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   712
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   713
#endif
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   714
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   715
    TT_Load_SBit_Image_Func      load_sbit_image;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   716
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   717
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   718
    TT_Free_Table_Func           free_sbits_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   719
#endif
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   720
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   721
    /* see `ttpost.h' */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   722
    TT_Get_PS_Name_Func          get_psname;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   723
    TT_Free_Table_Func           free_psnames;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   724
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   725
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   726
    TT_CharMap_Load_Func         load_charmap_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   727
    TT_CharMap_Free_Func         free_charmap_stub;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   728
#endif
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   729
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   730
    /* starting here, the structure differs from version 2.1.7 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   731
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   732
    /* this field was introduced in version 2.1.8, named `get_psname' */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   733
    TT_Face_GetKerningFunc       get_kerning;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   734
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   735
    /* new elements introduced after version 2.1.10 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   736
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   737
    /* load the font directory, i.e., the offset table and */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   738
    /* the table directory                                 */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   739
    TT_Load_Table_Func           load_font_dir;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   740
    TT_Load_Metrics_Func         load_hmtx;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   741
    
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   742
    TT_Load_Table_Func           load_eblc;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   743
    TT_Free_Table_Func           free_eblc;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   744
    
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   745
    TT_Set_SBit_Strike_Func      set_sbit_strike;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   746
    TT_Load_Strike_Metrics_Func  load_strike_metrics;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   747
    
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   748
    TT_Get_Metrics_Func          get_metrics;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   749
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   750
  } SFNT_Interface;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   751
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   752
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   753
  /* transitional */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   754
  typedef SFNT_Interface*   SFNT_Service;
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   755
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   756
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   757
FT_END_HEADER
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   758
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   759
#endif /* __SFNT_H__ */
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   760
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   761
6cc5529d4a89 201033_10
hgs
parents:
diff changeset
   762
/* END */