~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/freetype/src/truetype/ttgxvar.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  ttgxvar.h                                                              */
 
4
/*                                                                         */
 
5
/*    TrueType GX Font Variation loader (specification)                    */
 
6
/*                                                                         */
 
7
/*  Copyright 2004 by                                                      */
 
8
/*  David Turner, Robert Wilhelm, Werner Lemberg and George Williams.      */
 
9
/*                                                                         */
 
10
/*  This file is part of the FreeType project, and may only be used,       */
 
11
/*  modified, and distributed under the terms of the FreeType project      */
 
12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 
13
/*  this file you indicate that you have read the license and              */
 
14
/*  understand and accept it fully.                                        */
 
15
/*                                                                         */
 
16
/***************************************************************************/
 
17
 
 
18
 
 
19
#ifndef __TTGXVAR_H__
 
20
#define __TTGXVAR_H__
 
21
 
 
22
 
 
23
#include <ft2build.h>
 
24
#include "ttobjs.h"
 
25
 
 
26
 
 
27
FT_BEGIN_HEADER
 
28
 
 
29
 
 
30
  /*************************************************************************/
 
31
  /*                                                                       */
 
32
  /* <Struct>                                                              */
 
33
  /*    GX_AVarCorrespondenceRec                                           */
 
34
  /*                                                                       */
 
35
  /* <Description>                                                         */  
 
36
  /*    A data structure representing `shortFracCorrespondence' in `avar'  */
 
37
  /*    table according to the specifications from Apple.                  */
 
38
  /*                                                                       */
 
39
  typedef struct  GX_AVarCorrespondenceRec_
 
40
  {
 
41
    FT_Fixed  fromCoord;
 
42
    FT_Fixed  toCoord;
 
43
 
 
44
  } GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence;
 
45
 
 
46
 
 
47
  /*************************************************************************/
 
48
  /*                                                                       */
 
49
  /* <Struct>                                                              */
 
50
  /*    GX_AVarRec                                                         */
 
51
  /*                                                                       */
 
52
  /* <Description>                                                         */
 
53
  /*    Data from the segment field of `avar' table.                       */
 
54
  /*    There is one of these for each axis.                               */
 
55
  /*                                                                       */
 
56
  typedef struct  GX_AVarSegmentRec_
 
57
  {
 
58
    FT_UShort              pairCount;
 
59
    GX_AVarCorrespondence  correspondence; /* array with pairCount entries */
 
60
 
 
61
  } GX_AVarSegmentRec, *GX_AVarSegment;
 
62
 
 
63
 
 
64
  /*************************************************************************/
 
65
  /*                                                                       */
 
66
  /* <Struct>                                                              */
 
67
  /*    GX_BlendRec                                                        */
 
68
  /*                                                                       */
 
69
  /* <Description>                                                         */
 
70
  /*    Data for interpolating a font from a distortable font specified    */
 
71
  /*    by the GX *var tables ([fgca]var).                                 */
 
72
  /*                                                                       */
 
73
  /* <Fields>                                                              */
 
74
  /*    num_axis         :: The number of axes along which interpolation   */
 
75
  /*                         may happen                                    */
 
76
  /*                                                                       */
 
77
  /*    normalizedcoords :: A normalized value (between [-1,1]) indicating */
 
78
  /*                        the contribution along each axis to the final  */
 
79
  /*                        interpolated font.                             */
 
80
  /*                                                                       */
 
81
  typedef struct  GX_BlendRec_
 
82
  {
 
83
    FT_UInt         num_axis;
 
84
    FT_Fixed*       normalizedcoords;
 
85
 
 
86
    FT_MM_Var*      mmvar;
 
87
    FT_Int          mmvar_len;
 
88
 
 
89
    FT_Bool         avar_checked;
 
90
    GX_AVarSegment  avar_segment;
 
91
 
 
92
    FT_UInt         tuplecount;      /* shared tuples in `gvar'           */
 
93
    FT_Fixed*       tuplecoords;     /* tuplecoords[tuplecount][num_axis] */
 
94
 
 
95
    FT_UInt         gv_glyphcnt;
 
96
    FT_ULong*       glyphoffsets;
 
97
    
 
98
  } GX_BlendRec;
 
99
 
 
100
 
 
101
  /*************************************************************************/
 
102
  /*                                                                       */
 
103
  /* <enum>                                                                */
 
104
  /*    GX_TupleCountFlags                                                 */
 
105
  /*                                                                       */
 
106
  /* <Description>                                                         */
 
107
  /*    Flags used within the `TupleCount' field of the `gvar' table.      */
 
108
  /*                                                                       */
 
109
  typedef enum  GX_TupleCountFlags_
 
110
  {
 
111
    GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000,
 
112
    GX_TC_RESERVED_TUPLE_FLAGS       = 0x7000,
 
113
    GX_TC_TUPLE_COUNT_MASK           = 0x0FFF
 
114
 
 
115
  } GX_TupleCountFlags;
 
116
 
 
117
 
 
118
  /*************************************************************************/
 
119
  /*                                                                       */
 
120
  /* <enum>                                                                */
 
121
  /*    GX_TupleIndexFlags                                                 */
 
122
  /*                                                                       */
 
123
  /* <Description>                                                         */
 
124
  /*    Flags used within the `TupleIndex' field of the `gvar' and `cvar'  */
 
125
  /*    tables.                                                            */
 
126
  /*                                                                       */
 
127
  typedef enum  GX_TupleIndexFlags_
 
128
  {
 
129
    GX_TI_EMBEDDED_TUPLE_COORD  = 0x8000,
 
130
    GX_TI_INTERMEDIATE_TUPLE    = 0x4000,
 
131
    GX_TI_PRIVATE_POINT_NUMBERS = 0x2000,
 
132
    GX_TI_RESERVED_TUPLE_FLAG   = 0x1000,
 
133
    GX_TI_TUPLE_INDEX_MASK      = 0x0FFF
 
134
 
 
135
  } GX_TupleIndexFlags;
 
136
 
 
137
 
 
138
#define TTAG_wght  FT_MAKE_TAG( 'w', 'g', 'h', 't' )
 
139
#define TTAG_wdth  FT_MAKE_TAG( 'w', 'd', 't', 'h' )
 
140
#define TTAG_opsz  FT_MAKE_TAG( 'o', 'p', 's', 'z' )
 
141
#define TTAG_slnt  FT_MAKE_TAG( 's', 'l', 'n', 't' )
 
142
 
 
143
 
 
144
  FT_LOCAL( FT_Error )
 
145
  TT_Set_MM_Blend( TT_Face    face,
 
146
                   FT_UInt    num_coords,
 
147
                   FT_Fixed*  coords );
 
148
 
 
149
  FT_LOCAL( FT_Error )
 
150
  TT_Set_Var_Design( TT_Face    face,
 
151
                     FT_UInt    num_coords,
 
152
                     FT_Fixed*  coords );
 
153
 
 
154
  FT_LOCAL( FT_Error )
 
155
  TT_Get_MM_Var( TT_Face      face,
 
156
                 FT_MM_Var*  *master );
 
157
 
 
158
 
 
159
  FT_LOCAL( FT_Error )
 
160
  tt_face_vary_cvt( TT_Face    face,
 
161
                    FT_Stream  stream );
 
162
 
 
163
 
 
164
  FT_LOCAL( FT_Error )
 
165
  TT_Vary_Get_Glyph_Deltas( TT_Face      face,
 
166
                            FT_UInt      glyph_index,
 
167
                            FT_Vector*  *deltas,
 
168
                            FT_UInt      n_points );
 
169
 
 
170
 
 
171
  FT_LOCAL( void )
 
172
  tt_done_blend( FT_Memory  memory,
 
173
                 GX_Blend   blend );
 
174
 
 
175
 
 
176
FT_END_HEADER
 
177
 
 
178
 
 
179
#endif /* __TTGXVAR_H__ */
 
180
 
 
181
 
 
182
/* END */