1
/***************************************************************************/
5
/* TrueType GX Font Variation loader (specification) */
7
/* Copyright 2004 by */
8
/* David Turner, Robert Wilhelm, Werner Lemberg and George Williams. */
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. */
16
/***************************************************************************/
30
/*************************************************************************/
33
/* GX_AVarCorrespondenceRec */
36
/* A data structure representing `shortFracCorrespondence' in `avar' */
37
/* table according to the specifications from Apple. */
39
typedef struct GX_AVarCorrespondenceRec_
44
} GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence;
47
/*************************************************************************/
53
/* Data from the segment field of `avar' table. */
54
/* There is one of these for each axis. */
56
typedef struct GX_AVarSegmentRec_
59
GX_AVarCorrespondence correspondence; /* array with pairCount entries */
61
} GX_AVarSegmentRec, *GX_AVarSegment;
64
/*************************************************************************/
70
/* Data for interpolating a font from a distortable font specified */
71
/* by the GX *var tables ([fgca]var). */
74
/* num_axis :: The number of axes along which interpolation */
77
/* normalizedcoords :: A normalized value (between [-1,1]) indicating */
78
/* the contribution along each axis to the final */
79
/* interpolated font. */
81
typedef struct GX_BlendRec_
84
FT_Fixed* normalizedcoords;
90
GX_AVarSegment avar_segment;
92
FT_UInt tuplecount; /* shared tuples in `gvar' */
93
FT_Fixed* tuplecoords; /* tuplecoords[tuplecount][num_axis] */
96
FT_ULong* glyphoffsets;
101
/*************************************************************************/
104
/* GX_TupleCountFlags */
107
/* Flags used within the `TupleCount' field of the `gvar' table. */
109
typedef enum GX_TupleCountFlags_
111
GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000,
112
GX_TC_RESERVED_TUPLE_FLAGS = 0x7000,
113
GX_TC_TUPLE_COUNT_MASK = 0x0FFF
115
} GX_TupleCountFlags;
118
/*************************************************************************/
121
/* GX_TupleIndexFlags */
124
/* Flags used within the `TupleIndex' field of the `gvar' and `cvar' */
127
typedef enum GX_TupleIndexFlags_
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
135
} GX_TupleIndexFlags;
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' )
145
TT_Set_MM_Blend( TT_Face face,
150
TT_Set_Var_Design( TT_Face face,
155
TT_Get_MM_Var( TT_Face face,
156
FT_MM_Var* *master );
160
tt_face_vary_cvt( TT_Face face,
165
TT_Vary_Get_Glyph_Deltas( TT_Face face,
172
tt_done_blend( FT_Memory memory,
179
#endif /* __TTGXVAR_H__ */