00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __TTGXVAR_H__
00020 #define __TTGXVAR_H__
00021
00022
00023 #include <ft2build.h>
00024 #include "ttobjs.h"
00025
00026
00027 FT_BEGIN_HEADER
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 typedef struct GX_AVarCorrespondenceRec_
00040 {
00041 FT_Fixed fromCoord;
00042 FT_Fixed toCoord;
00043
00044 } GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence;
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 typedef struct GX_AVarSegmentRec_
00057 {
00058 FT_UShort pairCount;
00059 GX_AVarCorrespondence correspondence;
00060
00061 } GX_AVarSegmentRec, *GX_AVarSegment;
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081 typedef struct GX_BlendRec_
00082 {
00083 FT_UInt num_axis;
00084 FT_Fixed* normalizedcoords;
00085
00086 FT_MM_Var* mmvar;
00087 FT_Offset mmvar_len;
00088
00089 FT_Bool avar_checked;
00090 GX_AVarSegment avar_segment;
00091
00092 FT_UInt tuplecount;
00093 FT_Fixed* tuplecoords;
00094
00095 FT_UInt gv_glyphcnt;
00096 FT_ULong* glyphoffsets;
00097
00098 } GX_BlendRec;
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109 typedef enum GX_TupleCountFlags_
00110 {
00111 GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000,
00112 GX_TC_RESERVED_TUPLE_FLAGS = 0x7000,
00113 GX_TC_TUPLE_COUNT_MASK = 0x0FFF
00114
00115 } GX_TupleCountFlags;
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 typedef enum GX_TupleIndexFlags_
00128 {
00129 GX_TI_EMBEDDED_TUPLE_COORD = 0x8000,
00130 GX_TI_INTERMEDIATE_TUPLE = 0x4000,
00131 GX_TI_PRIVATE_POINT_NUMBERS = 0x2000,
00132 GX_TI_RESERVED_TUPLE_FLAG = 0x1000,
00133 GX_TI_TUPLE_INDEX_MASK = 0x0FFF
00134
00135 } GX_TupleIndexFlags;
00136
00137
00138 #define TTAG_wght FT_MAKE_TAG( 'w', 'g', 'h', 't' )
00139 #define TTAG_wdth FT_MAKE_TAG( 'w', 'd', 't', 'h' )
00140 #define TTAG_opsz FT_MAKE_TAG( 'o', 'p', 's', 'z' )
00141 #define TTAG_slnt FT_MAKE_TAG( 's', 'l', 'n', 't' )
00142
00143
00144 FT_LOCAL( FT_Error )
00145 TT_Set_MM_Blend( TT_Face face,
00146 FT_UInt num_coords,
00147 FT_Fixed* coords );
00148
00149 FT_LOCAL( FT_Error )
00150 TT_Set_Var_Design( TT_Face face,
00151 FT_UInt num_coords,
00152 FT_Fixed* coords );
00153
00154 FT_LOCAL( FT_Error )
00155 TT_Get_MM_Var( TT_Face face,
00156 FT_MM_Var* *master );
00157
00158
00159 FT_LOCAL( FT_Error )
00160 tt_face_vary_cvt( TT_Face face,
00161 FT_Stream stream );
00162
00163
00164 FT_LOCAL( FT_Error )
00165 TT_Vary_Get_Glyph_Deltas( TT_Face face,
00166 FT_UInt glyph_index,
00167 FT_Vector* *deltas,
00168 FT_UInt n_points );
00169
00170
00171 FT_LOCAL( void )
00172 tt_done_blend( FT_Memory memory,
00173 GX_Blend blend );
00174
00175
00176 FT_END_HEADER
00177
00178
00179 #endif
00180
00181
00182