1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* cffgload.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* OpenType Glyph Loader (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/* Copyright 1996-2004, 2006-2009, 2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __CFFGLOAD_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __CFFGLOAD_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "cffobjs.h" 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#define CFF_MAX_OPERANDS 48 32295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#define CFF_MAX_SUBRS_CALLS 32 33295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#define CFF_MAX_TRANS_ELEMENTS 32 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Structure> */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CFF_Builder */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used during glyph loading to store its outline. */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* memory :: The current memory object. */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* face :: The current face object. */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* glyph :: The current glyph slot. */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* loader :: The current glyph loader. */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* base :: The base glyph outline. */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* current :: The current glyph outline. */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* pos_x :: The horizontal translation (if composite glyph). */ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* pos_y :: The vertical translation (if composite glyph). */ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* left_bearing :: The left side bearing point. */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* advance :: The horizontal advance vector. */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* bbox :: Unused. */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* path_begun :: A flag which indicates that a new path has begun. */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* load_points :: If this flag is not set, no points are loaded. */ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* no_recurse :: Set but not used. */ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* metrics_only :: A boolean indicating that we only want to compute */ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the metrics of a given glyph, not load all of its */ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* points. */ 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* hints_funcs :: Auxiliary pointer for hinting. */ 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* hints_globals :: Auxiliary pointer for hinting. */ 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_Builder_ 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Memory memory; 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project TT_Face face; 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_GlyphSlot glyph; 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_GlyphLoader loader; 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* base; 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* current; 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos pos_x; 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos pos_y; 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector left_bearing; 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector advance; 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BBox bbox; /* bounding box */ 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool path_begun; 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool load_points; 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool no_recurse; 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool metrics_only; 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project void* hints_funcs; /* hinter-specific */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project void* hints_globals; /* hinter-specific */ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_Builder; 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 109a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( FT_Error ) 110a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_check_points( CFF_Builder* builder, 111a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Int count ); 112a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 113a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( void ) 114a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_builder_add_point( CFF_Builder* builder, 115a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos x, 116a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos y, 117a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Byte flag ); 118a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( FT_Error ) 119a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_builder_add_point1( CFF_Builder* builder, 120a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos x, 121a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos y ); 122a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( FT_Error ) 123a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_builder_start_point( CFF_Builder* builder, 124a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos x, 125a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Pos y ); 126a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( void ) 127a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_builder_close_contour( CFF_Builder* builder ); 128a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 129a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 130a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( FT_Int ) 131a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_lookup_glyph_by_stdcharcode( CFF_Font cff, 132a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Int charcode ); 133a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( FT_Error ) 134a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_get_glyph_data( TT_Face face, 135a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_UInt glyph_index, 136a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Byte** pointer, 137a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_ULong* length ); 138a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_LOCAL( void ) 139a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang cff_free_glyph_data( TT_Face face, 140a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Byte** pointer, 141a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_ULong length ); 142a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 143a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* execution context charstring zone */ 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_Decoder_Zone_ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte* base; 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte* limit; 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte* cursor; 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_Decoder_Zone; 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_Decoder_ 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Builder builder; 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Font cff; 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed stack[CFF_MAX_OPERANDS + 1]; 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* top; 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Decoder_Zone zones[CFF_MAX_SUBRS_CALLS + 1]; 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Decoder_Zone* zone; 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int flex_state; 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int num_flex_vectors; 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector flex_vectors[7]; 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos glyph_width; 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos nominal_width; 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool read_width; 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool width_only; 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int num_hints; 176295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Fixed buildchar[CFF_MAX_TRANS_ELEMENTS]; 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_locals; 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_globals; 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int locals_bias; 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int globals_bias; 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte** locals; 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte** globals; 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte** glyph_names; /* for pure CFF fonts only */ 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_glyphs; /* number of glyphs in font */ 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Render_Mode hint_mode; 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 192295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Bool seac; 193295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 194a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang CFF_SubFont current_subfont; /* for current glyph_index */ 195a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_Decoder; 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_decoder_init( CFF_Decoder* decoder, 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project TT_Face face, 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Size size, 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_GlyphSlot slot, 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool hinting, 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Render_Mode hint_mode ); 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_decoder_prepare( CFF_Decoder* decoder, 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Size size, 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt glyph_index ); 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if 0 /* unused until we support pure CFF fonts */ 213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Compute the maximum advance width of a font through quick parsing */ 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_compute_max_advance( TT_Face face, 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int* max_advance ); 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* 0 */ 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 221a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#ifdef CFF_CONFIG_OPTION_OLD_ENGINE 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_decoder_parse_charstrings( CFF_Decoder* decoder, 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte* charstring_base, 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong charstring_len ); 226a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#endif 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_slot_load( CFF_GlyphSlot glyph, 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CFF_Size size, 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt glyph_index, 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int32 load_flags ); 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __CFFGLOAD_H__ */ 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 241