PageRenderTime 7ms CodeModel.GetById 1ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/src/freetype/src/truetype/ttgxvar.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 182 lines | 70 code | 43 blank | 69 comment | 0 complexity | 8d32081c963f202a94c02afcc6799883 MD5 | raw file
  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
 27FT_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_Offset       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
176FT_END_HEADER
177
178
179#endif /* __TTGXVAR_H__ */
180
181
182/* END */