1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  ftmm.h                                                                 */
4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    FreeType Multiple Master font interface (specification).             */
6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
70a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project/*  Copyright 1996-2001, 2003, 2004, 2006, 2009 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 __FTMM_H__
20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTMM_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_TYPE1_TABLES_H
25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER
28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Section>                                                             */
33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    multiple_masters                                                   */
34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Title>                                                               */
36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Multiple Masters                                                   */
37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Abstract>                                                            */
39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    How to manage Multiple Masters fonts.                              */
40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The following types and functions are used to manage Multiple      */
43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Master fonts, i.e., the selection of specific design instances by  */
44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    setting design axis coordinates.                                   */
45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    George Williams has extended this interface to make it work with   */
470a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    both Type~1 Multiple Masters fonts and GX distortable (var)        */
48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    fonts.  Some of these routines only work with MM fonts, others     */
49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    will work with both types.  They are similar enough that a         */
50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    consistent interface makes sense.                                  */
51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_MM_Axis                                                         */
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A simple structure used to model a given axis in design space for  */
62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Multiple Masters fonts.                                            */
63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This structure can't be used for GX var fonts.                     */
65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    name    :: The axis's name.                                        */
68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    minimum :: The axis's minimum design coordinate.                   */
70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    maximum :: The axis's maximum design coordinate.                   */
72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_MM_Axis_
74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_String*  name;
76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Long     minimum;
77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Long     maximum;
78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_MM_Axis;
80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Multi_Master                                                    */
86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A structure used to model the axes and space of a Multiple Masters */
89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    font.                                                              */
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This structure can't be used for GX var fonts.                     */
92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
940a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    num_axis    :: Number of axes.  Cannot exceed~4.                   */
95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_designs :: Number of designs; should be normally 2^num_axis    */
970a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*                   even though the Type~1 specification strangely      */
98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                   allows for intermediate designs to be present. This */
990a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*                   number cannot exceed~16.                            */
100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    axis        :: A table of axis descriptors.                        */
102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_Multi_Master_
104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt     num_axis;
106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt     num_designs;
107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_MM_Axis  axis[T1_MAX_MM_AXIS];
108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_Multi_Master;
110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Var_Axis                                                        */
116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A simple structure used to model a given axis in design space for  */
119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Multiple Masters and GX var fonts.                                 */
120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    name    :: The axis's name.                                        */
123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               Not always meaningful for GX.                           */
124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    minimum :: The axis's minimum design coordinate.                   */
126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    def     :: The axis's default design coordinate.                   */
128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               FreeType computes meaningful default values for MM; it  */
129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               is then an integer value, not in 16.16 format.          */
130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    maximum :: The axis's maximum design coordinate.                   */
132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    tag     :: The axis's tag (the GX equivalent to `name').           */
134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               FreeType provides default values for MM if possible.    */
135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    strid   :: The entry in `name' table (another GX version of        */
137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               `name').                                                */
138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               Not meaningful for MM.                                  */
139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_Var_Axis_
141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_String*  name;
143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed    minimum;
145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed    def;
146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed    maximum;
147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_ULong    tag;
149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt     strid;
150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_Var_Axis;
152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Var_Named_Style                                                 */
158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A simple structure used to model a named style in a GX var font.   */
161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This structure can't be used for MM fonts.                         */
163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    coords :: The design coordinates for this style.                   */
166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*              This is an array with one entry for each axis.           */
167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    strid  :: The entry in `name' table identifying this style.        */
169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_Var_Named_Style_
171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed*  coords;
173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt    strid;
174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_Var_Named_Style;
176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_MM_Var                                                          */
182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A structure used to model the axes and space of a Multiple Masters */
185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    or GX var distortable font.                                        */
186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Some fields are specific to one format and not to the other.       */
188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
1900a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    num_axis        :: The number of axes.  The maximum value is~4 for */
191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       MM; no limit in GX.                             */
192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_designs     :: The number of designs; should be normally       */
194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       2^num_axis for MM fonts.  Not meaningful for GX */
195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       (where every glyph could have a different       */
196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       number of designs).                             */
197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_namedstyles :: The number of named styles; only meaningful for */
199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       GX which allows certain design coordinates to   */
200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       have a string ID (in the `name' table)          */
201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       associated with them.  The font can tell the    */
202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       user that, for example, Weight=1.5 is `Bold'.   */
203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    axis            :: A table of axis descriptors.                    */
205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       GX fonts contain slightly more data than MM.    */
206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    namedstyles     :: A table of named styles.                        */
208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                       Only meaningful with GX.                        */
209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_MM_Var_
211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt              num_axis;
213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt              num_designs;
214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UInt              num_namedstyles;
215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Var_Axis*         axis;
216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Var_Named_Style*  namedstyle;
217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_MM_Var;
219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* */
222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Get_Multi_Master                                                */
228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
2300a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    Retrieve the Multiple Master descriptor of a given font.           */
231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This function can't be used with GX fonts.                         */
233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face    :: A handle to the source face.                            */
236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    amaster :: The Multiple Masters descriptor.                        */
239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
2410a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Get_Multi_Master( FT_Face           face,
245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                       FT_Multi_Master  *amaster );
246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Get_MM_Var                                                      */
252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
2540a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    Retrieve the Multiple Master/GX var descriptor of a given font.    */
255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face    :: A handle to the source face.                            */
258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
2600a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    amaster :: The Multiple Masters/GX var descriptor.                 */
261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               Allocates a data structure, which the user must free    */
262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*               (a single call to FT_FREE will do it).                  */
263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
2650a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Get_MM_Var( FT_Face      face,
269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                 FT_MM_Var*  *amaster );
270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Set_MM_Design_Coordinates                                       */
276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    For Multiple Masters fonts, choose an interpolated font design     */
279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    through design coordinates.                                        */
280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This function can't be used with GX fonts.                         */
282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <InOut>                                                               */
284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face       :: A handle to the source face.                         */
285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_coords :: The number of design coordinates (must be equal to   */
288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  the number of axes in the font).                     */
289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    coords     :: An array of design coordinates.                      */
291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
2930a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Set_MM_Design_Coordinates( FT_Face   face,
297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                FT_UInt   num_coords,
298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                FT_Long*  coords );
299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Set_Var_Design_Coordinates                                      */
305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    For Multiple Master or GX Var fonts, choose an interpolated font   */
308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    design through design coordinates.                                 */
309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <InOut>                                                               */
311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face       :: A handle to the source face.                         */
312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_coords :: The number of design coordinates (must be equal to   */
315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  the number of axes in the font).                     */
316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    coords     :: An array of design coordinates.                      */
318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
3200a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Set_Var_Design_Coordinates( FT_Face    face,
324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                 FT_UInt    num_coords,
325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                 FT_Fixed*  coords );
326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
329049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Set_MM_Blend_Coordinates                                        */
332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    For Multiple Masters and GX var fonts, choose an interpolated font */
335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    design through normalized blend coordinates.                       */
336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <InOut>                                                               */
338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face       :: A handle to the source face.                         */
339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    num_coords :: The number of design coordinates (must be equal to   */
342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  the number of axes in the font).                     */
343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    coords     :: The design coordinates array (each element must be   */
345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                  between 0 and 1.0).                                  */
346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
3480a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Set_MM_Blend_Coordinates( FT_Face    face,
352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                               FT_UInt    num_coords,
353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                               FT_Fixed*  coords );
354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Set_Var_Blend_Coordinates                                       */
360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This is another name of @FT_Set_MM_Blend_Coordinates.              */
363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
365049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Set_Var_Blend_Coordinates( FT_Face    face,
366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                FT_UInt    num_coords,
367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                FT_Fixed*  coords );
368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* */
371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTMM_H__ */
376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
379