parent
05d31dec0e
commit
dc3daa0089
25 changed files with 2422 additions and 62 deletions
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,182 @@ |
||||
/***************************************************************************/ |
||||
/* */ |
||||
/* ttgxvar.h */ |
||||
/* */ |
||||
/* TrueType GX Font Variation loader (specification) */ |
||||
/* */ |
||||
/* Copyright 2004 by */ |
||||
/* David Turner, Robert Wilhelm, Werner Lemberg and George Williams. */ |
||||
/* */ |
||||
/* This file is part of the FreeType project, and may only be used, */ |
||||
/* modified, and distributed under the terms of the FreeType project */ |
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
||||
/* this file you indicate that you have read the license and */ |
||||
/* understand and accept it fully. */ |
||||
/* */ |
||||
/***************************************************************************/ |
||||
|
||||
|
||||
#ifndef __TTGXVAR_H__ |
||||
#define __TTGXVAR_H__ |
||||
|
||||
|
||||
#include <ft2build.h> |
||||
#include "ttobjs.h" |
||||
|
||||
|
||||
FT_BEGIN_HEADER |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/* */ |
||||
/* <Struct> */ |
||||
/* GX_AVarCorrespondenceRec */ |
||||
/* */ |
||||
/* <Description> */
|
||||
/* A data structure representing `shortFracCorrespondence' in `avar' */ |
||||
/* table according to the specifications from Apple. */ |
||||
/* */ |
||||
typedef struct GX_AVarCorrespondenceRec_ |
||||
{ |
||||
FT_Fixed fromCoord; |
||||
FT_Fixed toCoord; |
||||
|
||||
} GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence; |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/* */ |
||||
/* <Struct> */ |
||||
/* GX_AVarRec */ |
||||
/* */ |
||||
/* <Description> */ |
||||
/* Data from the segment field of `avar' table. */ |
||||
/* There is one of these for each axis. */ |
||||
/* */ |
||||
typedef struct GX_AVarSegmentRec_ |
||||
{ |
||||
FT_UShort pairCount; |
||||
GX_AVarCorrespondence correspondence; /* array with pairCount entries */ |
||||
|
||||
} GX_AVarSegmentRec, *GX_AVarSegment; |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/* */ |
||||
/* <Struct> */ |
||||
/* GX_BlendRec */ |
||||
/* */ |
||||
/* <Description> */ |
||||
/* Data for interpolating a font from a distortable font specified */ |
||||
/* by the GX *var tables ([fgca]var). */ |
||||
/* */ |
||||
/* <Fields> */ |
||||
/* num_axis :: The number of axes along which interpolation */ |
||||
/* may happen */ |
||||
/* */ |
||||
/* normalizedcoords :: A normalized value (between [-1,1]) indicating */ |
||||
/* the contribution along each axis to the final */ |
||||
/* interpolated font. */ |
||||
/* */ |
||||
typedef struct GS_BlendRec_ |
||||
{ |
||||
FT_UInt num_axis; |
||||
FT_Fixed* normalizedcoords; |
||||
|
||||
FT_MM_Var* mmvar; |
||||
FT_Int mmvar_len; |
||||
|
||||
FT_Bool avar_checked; |
||||
GX_AVarSegment avar_segment; |
||||
|
||||
FT_UInt tuplecount; /* shared tuples in `gvar' */ |
||||
FT_Fixed* tuplecoords; /* tuplecoords[tuplecount][num_axis] */ |
||||
|
||||
FT_UInt gv_glyphcnt; |
||||
FT_ULong* glyphoffsets; |
||||
|
||||
} GX_BlendRec; |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/* */ |
||||
/* <enum> */ |
||||
/* GX_TupleCountFlags */ |
||||
/* */ |
||||
/* <Description> */ |
||||
/* Flags used within the `TupleCount' field of the `gvar' table. */ |
||||
/* */ |
||||
typedef enum GX_TupleCountFlags_ |
||||
{ |
||||
GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000, |
||||
GX_TC_RESERVED_TUPLE_FLAGS = 0x7000, |
||||
GX_TC_TUPLE_COUNT_MASK = 0x0FFF |
||||
|
||||
} GX_TupleCountFlags; |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/* */ |
||||
/* <enum> */ |
||||
/* GX_TupleIndexFlags */ |
||||
/* */ |
||||
/* <Description> */ |
||||
/* Flags used within the `TupleIndex' field of the `gvar' and `cvar' */ |
||||
/* tables. */ |
||||
/* */ |
||||
typedef enum GX_TupleIndexFlags_ |
||||
{ |
||||
GX_TI_EMBEDDED_TUPLE_COORD = 0x8000, |
||||
GX_TI_INTERMEDIATE_TUPLE = 0x4000, |
||||
GX_TI_PRIVATE_POINT_NUMBERS = 0x2000, |
||||
GX_TI_RESERVED_TUPLE_FLAG = 0x1000, |
||||
GX_TI_TUPLE_INDEX_MASK = 0x0FFF |
||||
|
||||
} GX_TupleIndexFlags; |
||||
|
||||
|
||||
#define TTAG_wght FT_MAKE_TAG( 'w', 'g', 'h', 't' ) |
||||
#define TTAG_wdth FT_MAKE_TAG( 'w', 'd', 't', 'h' ) |
||||
#define TTAG_opsz FT_MAKE_TAG( 'o', 'p', 's', 'z' ) |
||||
#define TTAG_slnt FT_MAKE_TAG( 's', 'l', 'n', 't' ) |
||||
|
||||
|
||||
FT_LOCAL_DEF( FT_Error ) |
||||
TT_Set_MM_Blend( TT_Face face, |
||||
FT_UInt num_coords, |
||||
FT_Fixed* coords ); |
||||
|
||||
FT_LOCAL_DEF( FT_Error ) |
||||
TT_Set_Var_Design( TT_Face face, |
||||
FT_UInt num_coords, |
||||
FT_Fixed* coords ); |
||||
|
||||
FT_LOCAL_DEF( FT_Error ) |
||||
TT_Get_MM_Var( TT_Face face, |
||||
FT_MM_Var* *master ); |
||||
|
||||
|
||||
FT_LOCAL_DEF( FT_Error ) |
||||
tt_face_vary_cvt( TT_Face face, |
||||
FT_Stream stream ); |
||||
|
||||
|
||||
FT_LOCAL_DEF( FT_Error ) |
||||
TT_Vary_Get_Glyph_Deltas( TT_Face face, |
||||
FT_UInt glyph_index, |
||||
FT_Vector* *deltas, |
||||
FT_UInt n_points ); |
||||
|
||||
|
||||
FT_LOCAL_DEF( void ) |
||||
tt_done_blend( FT_Memory memory, |
||||
GX_Blend blend ); |
||||
|
||||
|
||||
FT_END_HEADER |
||||
|
||||
|
||||
#endif /* __TTGXVAR_H__ */ |
||||
|
||||
|
||||
/* END */ |
Loading…
Reference in new issue