1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  sfnt.h                                                                 */
4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    High-level `sfnt' driver interface (specification).                  */
6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/*  Copyright 1996-2006, 2009, 2012-2013 by                                */
8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  This file is part of the FreeType project, and may only be used,       */
11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  modified, and distributed under the terms of the FreeType project      */
12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  this file you indicate that you have read the license and              */
14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  understand and accept it fully.                                        */
15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __SFNT_H__
20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __SFNT_H__
21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h>
24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_DRIVER_H
25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_TRUETYPE_TYPES_H
26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER
29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Init_Face_Func                                                  */
35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    First part of the SFNT face object initialization.  This finds     */
38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    the face in a SFNT file or collection, and load its format tag in  */
39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face->format_tag.                                                  */
40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream     :: The input stream.                                    */
43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face       :: A handle to the target face object.                  */
45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face_index :: The index of the TrueType font, if we are opening a  */
47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  collection.                                          */
48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_params :: The number of additional parameters.                 */
50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    params     :: Optional additional parameters.                      */
52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The stream cursor must be at the font file's origin.               */
58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This function recognizes fonts embedded in a `TrueType             */
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    collection'.                                                       */
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Once the format tag has been validated by the font driver, it      */
63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    should then call the TT_Load_Face_Func() callback to read the rest */
64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    of the SFNT tables in the object.                                  */
65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Init_Face_Func)( FT_Stream      stream,
68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        TT_Face        face,
69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Int         face_index,
70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Int         num_params,
71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Parameter*  params );
72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_Face_Func                                                  */
78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Second part of the SFNT face object initialization.  This loads    */
81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the    */
82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face object.                                                       */
83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream     :: The input stream.                                    */
86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face       :: A handle to the target face object.                  */
88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face_index :: The index of the TrueType font, if we are opening a  */
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  collection.                                          */
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_params :: The number of additional parameters.                 */
93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    params     :: Optional additional parameters.                      */
95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This function must be called after TT_Init_Face_Func().            */
101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_Face_Func)( FT_Stream      stream,
104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        TT_Face        face,
105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Int         face_index,
106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Int         num_params,
107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                        FT_Parameter*  params );
108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Done_Face_Func                                                  */
114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A callback used to delete the common SFNT data from a face.        */
117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face :: A handle to the target face object.                        */
120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This function does NOT destroy the face object.                    */
123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef void
125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Done_Face_Func)( TT_Face  face );
126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_Any_Func                                                   */
132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load any font table into client memory.                            */
135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face   :: The face object to look for.                             */
138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    tag    :: The tag of table to load.  Use the value 0 if you want   */
140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              to access the whole font file, else set this parameter   */
141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              to a valid TrueType table tag that you can forge with    */
142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              the MAKE_TT_TAG macro.                                   */
143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    offset :: The starting offset in the table (or the file if         */
145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              tag == 0).                                               */
146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    length :: The address of the decision variable:                    */
148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                If length == NULL:                                     */
150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  Loads the whole table.  Returns an error if          */
151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  `offset' == 0!                                       */
152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                If *length == 0:                                       */
154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  Exits immediately; returning the length of the given */
155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  table or of the font file, depending on the value of */
156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  `tag'.                                               */
157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                If *length != 0:                                       */
159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  Loads the next `length' bytes of table or font,      */
160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  starting at offset `offset' (in table or font too).  */
161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    buffer :: The address of target buffer.                            */
164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TrueType error code.  0 means success.                             */
167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_Any_Func)( TT_Face    face,
170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                       FT_ULong   tag,
171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                       FT_Long    offset,
172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                       FT_Byte   *buffer,
173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                       FT_ULong*  length );
174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Find_SBit_Image_Func                                            */
180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Check whether an embedded bitmap (an `sbit') exists for a given    */
183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    glyph, at a given strike.                                          */
184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face          :: The target face object.                           */
187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    glyph_index   :: The glyph index.                                  */
189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    strike_index  :: The current strike index.                         */
191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    arange        :: The SBit range containing the glyph index.        */
194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    astrike       :: The SBit strike containing the glyph index.       */
196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    aglyph_offset :: The offset of the glyph data in `EBDT' table.     */
198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.  Returns                    */
201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    SFNT_Err_Invalid_Argument if no sbit exists for the requested      */
202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    glyph.                                                             */
203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Find_SBit_Image_Func)( TT_Face          face,
206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_UInt          glyph_index,
207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_ULong         strike_index,
208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              TT_SBit_Range   *arange,
209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              TT_SBit_Strike  *astrike,
210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_ULong        *aglyph_offset );
211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_SBit_Metrics_Func                                          */
217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Get the big metrics for a given embedded bitmap.                   */
220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream      :: The input stream.                                   */
223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    range       :: The SBit range containing the glyph.                */
225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    big_metrics :: A big SBit metrics structure for the glyph.         */
228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The stream cursor must be positioned at the glyph's offset within  */
234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    the `EBDT' table before the call.                                  */
235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    If the image format uses variable metrics, the stream cursor is    */
237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    positioned just after the metrics header in the `EBDT' table on    */
238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    function exit.                                                     */
239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_SBit_Metrics_Func)( FT_Stream        stream,
242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                TT_SBit_Range    range,
243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                TT_SBit_Metrics  metrics );
244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_SBit_Image_Func                                            */
250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load a given glyph sbit image from the font resource.  This also   */
253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    returns its metrics.                                               */
254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face ::                                                            */
257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The target face object.                                          */
258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    strike_index ::                                                    */
260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The strike index.                                                */
261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    glyph_index ::                                                     */
263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The current glyph index.                                         */
264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    load_flags ::                                                      */
266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The current load flags.                                          */
267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream ::                                                          */
269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The input stream.                                                */
270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    amap ::                                                            */
273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      The target pixmap.                                               */
274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    ametrics ::                                                        */
276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*      A big sbit metrics structure for the glyph image.                */
277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.  Returns an error if no     */
280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    glyph sbit exists for the index.                                   */
281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*  <Note>                                                               */
283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The `map.buffer' field is always freed before the glyph is loaded. */
284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_SBit_Image_Func)( TT_Face              face,
287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_ULong             strike_index,
288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_UInt              glyph_index,
289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_UInt              load_flags,
290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_Stream            stream,
291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_Bitmap           *amap,
292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              TT_SBit_MetricsRec  *ametrics );
293049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Set_SBit_Strike_Func                                            */
299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Select an sbit strike for a given size request.                    */
302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face          :: The target face object.                           */
305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    req           :: The size request.                                 */
307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    astrike_index :: The index of the sbit strike.                     */
310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.  Returns an error if no     */
313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    sbit strike exists for the selected ppem values.                   */
314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Set_SBit_Strike_Func)( TT_Face          face,
317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_Size_Request  req,
318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                              FT_ULong*        astrike_index );
319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_Strike_Metrics_Func                                        */
325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load the metrics of a given strike.                                */
328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
329049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face          :: The target face object.                           */
331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    strike_index  :: The strike index.                                 */
333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    metrics       :: the metrics of the strike.                        */
336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.  Returns an error if no     */
339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    such sbit strike exists.                                           */
340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_Strike_Metrics_Func)( TT_Face           face,
343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                  FT_ULong          strike_index,
344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                  FT_Size_Metrics*  metrics );
345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Get_PS_Name_Func                                                */
351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Get the PostScript glyph name of a glyph.                          */
354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    idx  :: The glyph index.                                           */
357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    PSname :: The address of a string pointer.  Will be NULL in case   */
359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              of error, otherwise it is a pointer to the glyph name.   */
360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              You must not modify the returned string!                 */
362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
365049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Get_PS_Name_Func)( TT_Face      face,
368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_UInt      idx,
369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_String**  PSname );
370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_Metrics_Func                                               */
376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load a metrics table, which is a table with a horizontal and a     */
379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    vertical version.                                                  */
380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face     :: A handle to the target face object.                    */
383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream   :: The input stream.                                      */
385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    vertical :: A boolean flag.  If set, load the vertical one.        */
387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
390049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_Metrics_Func)( TT_Face    face,
393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                           FT_Stream  stream,
394049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                           FT_Bool    vertical );
395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Get_Metrics_Func                                                */
401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load the horizontal or vertical header in a face object.           */
404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face     :: A handle to the target face object.                    */
407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream   :: The input stream.                                      */
409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
411049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
416049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Get_Metrics_Func)( TT_Face     face,
417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_Bool     vertical,
418049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_UInt     gindex,
419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_Short*   abearing,
420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                          FT_UShort*  aadvance );
421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Load_Table_Func                                                 */
427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Load a given TrueType table.                                       */
430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face   :: A handle to the target face object.                      */
433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    stream :: The input stream.                                        */
435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
437049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FreeType error code.  0 means success.                             */
438049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The function uses `face->goto_table' to seek the stream to the     */
441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    start of the table, except while loading the font directory.       */
442049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Error
444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Load_Table_Func)( TT_Face    face,
445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                         FT_Stream  stream );
446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
449049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
450049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <FuncType>                                                            */
451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    TT_Free_Table_Func                                                 */
452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Free a given TrueType table.                                       */
455049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face :: A handle to the target face object.                        */
458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef void
460049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Free_Table_Func)( TT_Face  face );
461049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
462049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
463049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*
464049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @functype:
465049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    TT_Face_GetKerningFunc
466049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
467049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @description:
468049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    Return the horizontal kerning value between two glyphs.
469049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
470049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @input:
471049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    face        :: A handle to the source face object.
472049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    left_glyph  :: The left glyph index.
473049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    right_glyph :: The right glyph index.
474049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
475049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @return:
476049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    The kerning value in font units.
477049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   */
478049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef FT_Int
479049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  (*TT_Face_GetKerningFunc)( TT_Face  face,
480049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                             FT_UInt  left_glyph,
481049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                             FT_UInt  right_glyph );
482049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
483049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
484049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
485049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
486049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
487049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    SFNT_Interface                                                     */
488049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
489049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
490049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This structure holds pointers to the functions used to load and    */
491049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    free the basic tables that are required in a `sfnt' font file.     */
492049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
493049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
494049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Check the various xxx_Func() descriptions for details.             */
495049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
496049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  SFNT_Interface_
497049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
498049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Loader_GotoTableFunc      goto_table;
499049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
500049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Init_Face_Func            init_face;
501049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Face_Func            load_face;
502049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Done_Face_Func            done_face;
503049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Module_Requester          get_interface;
504049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
505049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Any_Func             load_any;
506049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
507049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* these functions are called by `load_face' but they can also  */
508049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* be called from external modules, if there is a need to do so */
509049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_head;
510049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Metrics_Func         load_hhea;
511049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_cmap;
512049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_maxp;
513049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_os2;
514049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_post;
515049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
516049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_name;
517049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Free_Table_Func           free_name;
518049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
519049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* this field was called `load_kerning' up to version 2.1.10 */
520049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_kern;
521049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
522049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_gasp;
523049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_pclt;
524049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
525049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* see `ttload.h'; this field was called `load_bitmap_header' up to */
526049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* version 2.1.10                                                   */
527049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_bhed;
528049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
529049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_SBit_Image_Func      load_sbit_image;
530049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
531049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* see `ttpost.h' */
532049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Get_PS_Name_Func          get_psname;
533049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Free_Table_Func           free_psnames;
534049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
535049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* starting here, the structure differs from version 2.1.7 */
536049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
537049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* this field was introduced in version 2.1.8, named `get_psname' */
538049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Face_GetKerningFunc       get_kerning;
539049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
540049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* new elements introduced after version 2.1.10 */
541049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
542049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* load the font directory, i.e., the offset table and */
543049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    /* the table directory                                 */
544049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_font_dir;
545049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Metrics_Func         load_hmtx;
546049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
547049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Table_Func           load_eblc;
548049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Free_Table_Func           free_eblc;
549049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
550049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Set_SBit_Strike_Func      set_sbit_strike;
551049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Load_Strike_Metrics_Func  load_strike_metrics;
552049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
553049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    TT_Get_Metrics_Func          get_metrics;
554049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
555049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } SFNT_Interface;
556049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
557049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
558049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* transitional */
559049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef SFNT_Interface*   SFNT_Service;
560049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
561295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifndef FT_CONFIG_OPTION_PIC
562295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
563a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_DEFINE_SFNT_INTERFACE(        \
564a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          class_,                        \
565a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          goto_table_,                   \
566a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          init_face_,                    \
567a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_face_,                    \
568a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          done_face_,                    \
569a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_interface_,                \
570a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_any_,                     \
571a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_head_,                    \
572a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_hhea_,                    \
573a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_cmap_,                    \
574a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_maxp_,                    \
575a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_os2_,                     \
576a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_post_,                    \
577a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_name_,                    \
578a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_name_,                    \
579a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_kern_,                    \
580a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_gasp_,                    \
581a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_pclt_,                    \
582a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_bhed_,                    \
583a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_sbit_image_,              \
584a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_psname_,                   \
585a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_psnames_,                 \
586a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_kerning_,                  \
587a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_font_dir_,                \
588a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_hmtx_,                    \
589a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_eblc_,                    \
590a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_eblc_,                    \
591a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          set_sbit_strike_,              \
592a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_strike_metrics_,          \
593a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_metrics_ )                 \
594a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang  static const SFNT_Interface  class_ =  \
595a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang  {                                      \
596a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    goto_table_,                         \
597a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    init_face_,                          \
598a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_face_,                          \
599a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    done_face_,                          \
600a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    get_interface_,                      \
601a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_any_,                           \
602a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_head_,                          \
603a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_hhea_,                          \
604a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_cmap_,                          \
605a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_maxp_,                          \
606a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_os2_,                           \
607a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_post_,                          \
608a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_name_,                          \
609a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    free_name_,                          \
610a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_kern_,                          \
611a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_gasp_,                          \
612a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_pclt_,                          \
613a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_bhed_,                          \
614a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_sbit_image_,                    \
615a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    get_psname_,                         \
616a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    free_psnames_,                       \
617a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    get_kerning_,                        \
618a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_font_dir_,                      \
619a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_hmtx_,                          \
620a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_eblc_,                          \
621a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    free_eblc_,                          \
622a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    set_sbit_strike_,                    \
623a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    load_strike_metrics_,                \
624a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    get_metrics_,                        \
625295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner  };
626295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
627e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#else /* FT_CONFIG_OPTION_PIC */
628295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
629a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_INTERNAL( a, a_ )  \
630a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          clazz->a = a_;
631a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang
632a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_DEFINE_SFNT_INTERFACE(                       \
633a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          class_,                                       \
634a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          goto_table_,                                  \
635a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          init_face_,                                   \
636a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_face_,                                   \
637a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          done_face_,                                   \
638a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_interface_,                               \
639a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_any_,                                    \
640a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_head_,                                   \
641a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_hhea_,                                   \
642a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_cmap_,                                   \
643a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_maxp_,                                   \
644a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_os2_,                                    \
645a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_post_,                                   \
646a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_name_,                                   \
647a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_name_,                                   \
648a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_kern_,                                   \
649a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_gasp_,                                   \
650a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_pclt_,                                   \
651a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_bhed_,                                   \
652a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_sbit_image_,                             \
653a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_psname_,                                  \
654a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_psnames_,                                \
655a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_kerning_,                                 \
656a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_font_dir_,                               \
657a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_hmtx_,                                   \
658a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_eblc_,                                   \
659a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          free_eblc_,                                   \
660a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          set_sbit_strike_,                             \
661a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          load_strike_metrics_,                         \
662a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang          get_metrics_ )                                \
663a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang  void                                                  \
664a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang  FT_Init_Class_ ## class_( FT_Library       library,   \
665a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang                            SFNT_Interface*  clazz )    \
666a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang  {                                                     \
667a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    FT_UNUSED( library );                               \
668a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang                                                        \
669a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->goto_table          = goto_table_;           \
670a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->init_face           = init_face_;            \
671a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_face           = load_face_;            \
672a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->done_face           = done_face_;            \
673a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->get_interface       = get_interface_;        \
674a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_any            = load_any_;             \
675a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_head           = load_head_;            \
676a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_hhea           = load_hhea_;            \
677a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_cmap           = load_cmap_;            \
678a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_maxp           = load_maxp_;            \
679a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_os2            = load_os2_;             \
680a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_post           = load_post_;            \
681a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_name           = load_name_;            \
682a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->free_name           = free_name_;            \
683a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_kern           = load_kern_;            \
684a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_gasp           = load_gasp_;            \
685a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_pclt           = load_pclt_;            \
686a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_bhed           = load_bhed_;            \
687a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_sbit_image     = load_sbit_image_;      \
688a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->get_psname          = get_psname_;           \
689a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->free_psnames        = free_psnames_;         \
690a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->get_kerning         = get_kerning_;          \
691a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_font_dir       = load_font_dir_;        \
692a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_hmtx           = load_hmtx_;            \
693a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_eblc           = load_eblc_;            \
694a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->free_eblc           = free_eblc_;            \
695a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->set_sbit_strike     = set_sbit_strike_;      \
696a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->load_strike_metrics = load_strike_metrics_;  \
697a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang    clazz->get_metrics         = get_metrics_;          \
698e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang  }
699295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
700e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#endif /* FT_CONFIG_OPTION_PIC */
701049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
702049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
703049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
704049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __SFNT_H__ */
705049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
706049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
707049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
708