1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* cfftypes.h */ 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Basic OpenType/CFF type definitions and interface (specification */ 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* only). */ 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Copyright 1996-2003, 2006-2008, 2010-2011, 2013 by */ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* This file is part of the FreeType project, and may only be used, */ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* modified, and distributed under the terms of the FreeType project */ 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* this file you indicate that you have read the license and */ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* understand and accept it fully. */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __CFFTYPES_H__ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __CFFTYPES_H__ 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 24e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include <ft2build.h> 25e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include FT_FREETYPE_H 26e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include FT_TYPE1_TABLES_H 27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include FT_INTERNAL_SERVICE_H 28e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include FT_SERVICE_POSTSCRIPT_CMAPS_H 29e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include FT_INTERNAL_POSTSCRIPT_HINTS_H 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Struct> */ 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* CFF_IndexRec */ 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A structure used to model a CFF Index table. */ 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Fields> */ 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stream :: The source input stream. */ 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* start :: The position of the first index byte in the */ 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* input stream. */ 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* count :: The number of elements in the index. */ 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* off_size :: The size in bytes of object offsets in index. */ 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* data_offset :: The position of first data byte in the index's */ 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* bytes. */ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* data_size :: The size of the data table in this index. */ 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* offsets :: A table of element offsets in the index. Must be */ 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* loaded explicitly. */ 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* bytes :: If the index is loaded in memory, its bytes. */ 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_IndexRec_ 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream; 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong start; 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt count; 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte off_size; 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong data_offset; 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong data_size; 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong* offsets; 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte* bytes; 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_IndexRec, *CFF_Index; 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_EncodingRec_ 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt format; 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong offset; 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt count; 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UShort sids [256]; /* avoid dynamic allocations */ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UShort codes[256]; 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_EncodingRec, *CFF_Encoding; 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_CharsetRec_ 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt format; 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong offset; 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UShort* sids; 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UShort* cids; /* the inverse mapping of `sids'; only needed */ 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* for CID-keyed fonts */ 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt max_cid; 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt num_glyphs; 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_CharsetRec, *CFF_Charset; 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_FontRecDictRec_ 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt version; 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt notice; 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt copyright; 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt full_name; 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt family_name; 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt weight; 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool is_fixed_pitch; 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed italic_angle; 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed underline_position; 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed underline_thickness; 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int paint_type; 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int charstring_type; 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Matrix font_matrix; 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool has_font_matrix; 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong units_per_em; /* temporarily used as scaling value also */ 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Vector font_offset; 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong unique_id; 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_BBox font_bbox; 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos stroke_width; 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong charset_offset; 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong encoding_offset; 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong charstrings_offset; 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong private_offset; 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong private_size; 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long synthetic_base; 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt embedded_postscript; 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* these should only be used for the top-level font dictionary */ 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt cid_registry; 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt cid_ordering; 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long cid_supplement; 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long cid_font_version; 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long cid_font_revision; 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long cid_font_type; 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong cid_count; 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong cid_uid_base; 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong cid_fd_array_offset; 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong cid_fd_select_offset; 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt cid_font_name; 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_FontRecDictRec, *CFF_FontRecDict; 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_PrivateRec_ 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_blue_values; 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_other_blues; 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_family_blues; 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_family_other_blues; 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos blue_values[14]; 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos other_blues[10]; 160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos family_blues[14]; 161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos family_other_blues[10]; 162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed blue_scale; 164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos blue_shift; 165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos blue_fuzz; 166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos standard_width; 167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos standard_height; 168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_snap_widths; 170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte num_snap_heights; 171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos snap_widths[13]; 172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos snap_heights[13]; 173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool force_bold; 174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed force_bold_threshold; 175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int lenIV; 176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int language_group; 177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed expansion_factor; 178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long initial_random_seed; 179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong local_subrs_offset; 180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos default_width; 181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Pos nominal_width; 182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_PrivateRec, *CFF_Private; 184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_FDSelectRec_ 187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte format; 189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt range_count; 190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* that's the table, taken from the file `as is' */ 192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte* data; 193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt data_size; 194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* small cache for format 3 only */ 196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt cache_first; 197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt cache_count; 198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte cache_fd; 199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_FDSelectRec, *CFF_FDSelect; 201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A SubFont packs a font dict and a private dict together. They are */ 204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* needed to support CID-keyed CFF fonts. */ 205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_SubFontRec_ 206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_FontRecDictRec font_dict; 208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_PrivateRec private_dict; 209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec local_subrs_index; 211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte** local_subrs; /* array of pointers into Local Subrs INDEX data */ 212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_SubFontRec, *CFF_SubFont; 214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_MAX_CID_FONTS 256 217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CFF_FontRec_ 220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream; 222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Memory memory; 223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt num_faces; 224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt num_glyphs; 225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte version_major; 227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte version_minor; 228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte header_size; 229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte absolute_offsize; 230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec name_index; 233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec top_dict_index; 234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec global_subrs_index; 235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_EncodingRec encoding; 237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_CharsetRec charset; 238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec charstrings_index; 240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec font_dict_index; 241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec private_index; 242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_IndexRec local_subrs_index; 243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_String* font_name; 245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* array of pointers into Global Subrs INDEX data */ 247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte** global_subrs; 248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* array of pointers into String INDEX data stored at string_pool */ 250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt num_strings; 251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte** strings; 252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Byte* string_pool; 253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_SubFontRec top_font; 255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UInt num_subfonts; 256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_SubFont subfonts[CFF_MAX_CID_FONTS]; 257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFF_FDSelectRec fd_select; 259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* interface to PostScript hinter */ 261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov PSHinter_Service pshinter; 262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 263ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* interface to Postscript Names service */ 264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_PsCMaps psnames; 265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* since version 2.3.0 */ 267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov PS_FontInfoRec* font_info; /* font info dictionary */ 268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 269ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* since version 2.3.6 */ 270ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_String* registry; 271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_String* ordering; 272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* since version 2.4.12 */ 274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Generic cf2_instance; 275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CFF_FontRec, *CFF_Font; 277ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 278ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 279ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER 280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __CFFTYPES_H__ */ 282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 284ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */ 285