ttgxvar.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:8k
- /***************************************************************************/
- /* */
- /* 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 GX_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( FT_Error )
- TT_Set_MM_Blend( TT_Face face,
- FT_UInt num_coords,
- FT_Fixed* coords );
- FT_LOCAL( FT_Error )
- TT_Set_Var_Design( TT_Face face,
- FT_UInt num_coords,
- FT_Fixed* coords );
- FT_LOCAL( FT_Error )
- TT_Get_MM_Var( TT_Face face,
- FT_MM_Var* *master );
- FT_LOCAL( FT_Error )
- tt_face_vary_cvt( TT_Face face,
- FT_Stream stream );
- FT_LOCAL( FT_Error )
- TT_Vary_Get_Glyph_Deltas( TT_Face face,
- FT_UInt glyph_index,
- FT_Vector* *deltas,
- FT_UInt n_points );
- FT_LOCAL( void )
- tt_done_blend( FT_Memory memory,
- GX_Blend blend );
- FT_END_HEADER
- #endif /* __TTGXVAR_H__ */
- /* END */