1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* t1tables.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Basic Type 1/Type 2 tables definitions and interface (specification */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* only). */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra/* Copyright 1996-2004, 2006, 2008, 2009, 2011 by */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __T1TABLES_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __T1TABLES_H__ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* type1_tables */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Type 1 Tables */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 460a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Type~1 (PostScript) specific font tables. */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This section contains the definition of Type 1-specific tables, */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* including structures related to other PostScript font formats. */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* structures in order to support Multiple Master fonts. */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PS_FontInfoRec */ 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 650a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ 660a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Note that for Multiple Master fonts, each instance has its own */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FontInfo dictionary. */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_FontInfoRec_ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* version; 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* notice; 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* full_name; 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* family_name; 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* weight; 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Long italic_angle; 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool is_fixed_pitch; 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short underline_position; 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort underline_thickness; 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PS_FontInfoRec; 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PS_FontInfo */ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to a @PS_FontInfoRec structure. */ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_FontInfoRec_* PS_FontInfo; 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* T1_FontInfo */ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* kept to maintain source compatibility between various versions of */ 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType. */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef PS_FontInfoRec T1_FontInfo; 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PS_PrivateRec */ 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 1140a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* A structure used to model a Type~1 or Type~2 private dictionary. */ 1150a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Note that for Multiple Master fonts, each instance has its own */ 1160a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Private dictionary. */ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_PrivateRec_ 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int unique_id; 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int lenIV; 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_blue_values; 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_other_blues; 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_family_blues; 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_family_other_blues; 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short blue_values[14]; 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short other_blues[10]; 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short family_blues [14]; 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short family_other_blues[10]; 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed blue_scale; 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int blue_shift; 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int blue_fuzz; 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort standard_width[1]; 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort standard_height[1]; 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_snap_widths; 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_snap_heights; 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool force_bold; 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool round_stem_up; 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short snap_widths [13]; /* including std width */ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short snap_heights[13]; /* including std height */ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed expansion_factor; 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Long language_group; 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Long password; 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Short min_feature[2]; 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PS_PrivateRec; 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PS_Private */ 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to a @PS_PrivateRec structure. */ 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_PrivateRec_* PS_Private; 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* T1_Private */ 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* kept to maintain source compatibility between various versions of */ 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType. */ 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef PS_PrivateRec T1_Private; 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Enum> */ 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* T1_Blend_Flags */ 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A set of flags used to indicate which fields are present in a */ 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* given blend dictionary (font info or private). Used to support */ 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Multiple Masters fonts. */ 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef enum T1_Blend_Flags_ 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*# required fields in a FontInfo blend dictionary */ 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_UNDERLINE_POSITION = 0, 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_UNDERLINE_THICKNESS, 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_ITALIC_ANGLE, 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*# required fields in a Private blend dictionary */ 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_BLUE_VALUES, 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_OTHER_BLUES, 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_STANDARD_WIDTH, 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_STANDARD_HEIGHT, 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_STEM_SNAP_WIDTHS, 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_STEM_SNAP_HEIGHTS, 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_BLUE_SCALE, 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_BLUE_SHIFT, 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_FAMILY_BLUES, 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_FAMILY_OTHER_BLUES, 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_FORCE_BOLD, 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*# never remove */ 214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_BLEND_MAX 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } T1_Blend_Flags; 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*# backwards compatible definitions */ 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_blue_values T1_BLEND_BLUE_VALUES 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_other_blues T1_BLEND_OTHER_BLUES 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_blue_scale T1_BLEND_BLUE_SCALE 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_family_blues T1_BLEND_FAMILY_BLUES 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_force_bold T1_BLEND_FORCE_BOLD 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define t1_blend_max T1_BLEND_MAX 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* maximum number of Multiple Masters designs, as defined in the spec */ 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define T1_MAX_MM_DESIGNS 16 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* maximum number of Multiple Masters axes, as defined in the spec */ 243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define T1_MAX_MM_AXIS 4 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* maximum number of elements in a design map */ 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define T1_MAX_MM_MAP_POINTS 20 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* this structure is used to store the BlendDesignMap entry for an axis */ 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_DesignMap_ 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte num_points; 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Long* design_points; 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* blend_points; 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PS_DesignMapRec, *PS_DesignMap; 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* backwards-compatible definition */ 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef PS_DesignMapRec T1_DesignMap; 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PS_BlendRec_ 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_designs; 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_axis; 266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* axis_names[T1_MAX_MM_AXIS]; 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* design_pos[T1_MAX_MM_DESIGNS]; 269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_DesignMapRec design_map[T1_MAX_MM_AXIS]; 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* weight_vector; 272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* default_weight_vector; 273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1]; 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_Private privates [T1_MAX_MM_DESIGNS + 1]; 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong blend_bitflags; 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1]; 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* since 2.3.0 */ 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* undocumented, optional: the default design instance; */ 284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* corresponds to default_weight_vector -- */ 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* num_default_design_vector == 0 means it is not present */ 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* in the font and associated metrics files */ 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt default_design_vector[T1_MAX_MM_DESIGNS]; 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_default_design_vector; 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PS_BlendRec, *PS_Blend; 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 293049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* backwards-compatible definition */ 294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef PS_BlendRec T1_Blend; 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CID_FaceDictRec */ 301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to represent data in a CID top-level dictionary. */ 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CID_FaceDictRec_ 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_PrivateRec private_dict; 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt len_buildchar; 310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed forcebold_threshold; 311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos stroke_width; 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed expansion_factor; 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte paint_type; 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte font_type; 316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Matrix font_matrix; 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector font_offset; 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt num_subrs; 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong subrmap_offset; 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int sd_bytes; 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CID_FaceDictRec; 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 329049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CID_FaceDict */ 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to a @CID_FaceDictRec structure. */ 333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CID_FaceDictRec_* CID_FaceDict; 335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* backwards-compatible definition */ 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef CID_FaceDictRec CID_FontDict; 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CID_FaceInfoRec */ 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to represent CID Face information. */ 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CID_FaceInfoRec_ 352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* cid_font_name; 354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed cid_version; 355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int cid_font_type; 356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* registry; 358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_String* ordering; 359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int supplement; 360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_FontInfoRec font_info; 362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BBox font_bbox; 363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong uid_base; 364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 365049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int num_xuid; 366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong xuid[16]; 367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong cidmap_offset; 369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int fd_bytes; 370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int gd_bytes; 371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong cid_count; 372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int num_dicts; 374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project CID_FaceDict font_dicts; 375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong data_offset; 377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CID_FaceInfoRec; 379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CID_FaceInfo */ 385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to a @CID_FaceInfoRec structure. */ 388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CID_FaceInfoRec_* CID_FaceInfo; 390049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 394049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CID_Info */ 396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ 399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* kept to maintain source compatibility between various versions of */ 400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType. */ 401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef CID_FaceInfoRec CID_Info; 403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************ 406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Has_PS_Glyph_Names 409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 4110a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * Return true if a given face provides reliable PostScript glyph 412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, 413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * except that certain fonts (mostly TrueType) contain incorrect 414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * glyph name tables. 415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 416049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * When this function returns true, the caller is sure that the glyph 417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * names returned by @FT_Get_Glyph_Name are reliable. 418049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: 421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face handle 422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Boolean. True if glyph names are reliable. 425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Int ) 428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Has_PS_Glyph_Names( FT_Face face ); 429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************ 432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Get_PS_Font_Info 435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 437049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Retrieve the @PS_FontInfoRec structure corresponding to a given 4380a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * PostScript font. 439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: 4420a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * PostScript face handle. 443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * afont_info :: 446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Output font info structure pointer. 447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 4490a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 450049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The string pointers within the font info structure are owned by 453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the face and don't need to be freed by the caller. 454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 4550a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * If the font's format is not PostScript-based, this function will 456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * return the `FT_Err_Invalid_Argument' error code. 457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 460049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_PS_Font_Info( FT_Face face, 461049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_FontInfo afont_info ); 462049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 463049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 464049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************ 465049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 466049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 467049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Get_PS_Font_Private 468049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 469049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 470049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Retrieve the @PS_PrivateRec structure corresponding to a given 4710a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * PostScript font. 472049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 473049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 474049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: 4750a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * PostScript face handle. 476049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 477049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 478049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * afont_private :: 479049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Output private dictionary structure pointer. 480049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 481049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 4820a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 483049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 484049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 4850a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * The string pointers within the @PS_PrivateRec structure are owned by 486049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the face and don't need to be freed by the caller. 487049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 4880a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * If the font's format is not PostScript-based, this function returns 4890a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * the `FT_Err_Invalid_Argument' error code. 490049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 491049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 492049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 493049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_PS_Font_Private( FT_Face face, 494049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PS_Private afont_private ); 495049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 496049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 49727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /*************************************************************************/ 49827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 49927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* <Enum> */ 50027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* T1_EncodingType */ 50127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 50227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* <Description> */ 50327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* An enumeration describing the `Encoding' entry in a Type 1 */ 50427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* dictionary. */ 50527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 50627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra typedef enum T1_EncodingType_ 50727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra { 50827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra T1_ENCODING_TYPE_NONE = 0, 50927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra T1_ENCODING_TYPE_ARRAY, 51027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra T1_ENCODING_TYPE_STANDARD, 51127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra T1_ENCODING_TYPE_ISOLATIN1, 51227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra T1_ENCODING_TYPE_EXPERT 51327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 51427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra } T1_EncodingType; 51527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 51627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 51727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /*************************************************************************/ 51827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 51927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* <Enum> */ 52027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* PS_Dict_Keys */ 52127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 52227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* <Description> */ 52327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ 52427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* the Type~1 dictionary entry to retrieve. */ 52527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 52627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra typedef enum PS_Dict_Keys_ 52727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra { 52827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* conventionally in the font dictionary */ 52927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FONT_TYPE, /* FT_Byte */ 53027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FONT_MATRIX, /* FT_Fixed */ 53127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FONT_BBOX, /* FT_Fixed */ 53227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_PAINT_TYPE, /* FT_Byte */ 53327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FONT_NAME, /* FT_String* */ 53427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_UNIQUE_ID, /* FT_Int */ 53527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */ 53627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_CHAR_STRING_KEY, /* FT_String* */ 53727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_CHAR_STRING, /* FT_String* */ 53827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_ENCODING_TYPE, /* T1_EncodingType */ 53927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_ENCODING_ENTRY, /* FT_String* */ 54027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 54127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* conventionally in the font Private dictionary */ 54227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_SUBRS, /* FT_Int */ 54327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_SUBR, /* FT_String* */ 54427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_STD_HW, /* FT_UShort */ 54527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_STD_VW, /* FT_UShort */ 54627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */ 54727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_BLUE_VALUE, /* FT_Short */ 54827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_BLUE_FUZZ, /* FT_Int */ 54927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */ 55027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_OTHER_BLUE, /* FT_Short */ 55127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */ 55227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FAMILY_BLUE, /* FT_Short */ 55327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */ 55427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */ 55527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_BLUE_SCALE, /* FT_Fixed */ 55627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_BLUE_SHIFT, /* FT_Int */ 55727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */ 55827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_STEM_SNAP_H, /* FT_Short */ 55927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */ 56027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_STEM_SNAP_V, /* FT_Short */ 56127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FORCE_BOLD, /* FT_Bool */ 56227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_RND_STEM_UP, /* FT_Bool */ 56327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_MIN_FEATURE, /* FT_Short */ 56427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_LEN_IV, /* FT_Int */ 56527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_PASSWORD, /* FT_Long */ 56627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_LANGUAGE_GROUP, /* FT_Long */ 56727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 56827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* conventionally in the font FontInfo dictionary */ 56927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_VERSION, /* FT_String* */ 57027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_NOTICE, /* FT_String* */ 57127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FULL_NAME, /* FT_String* */ 57227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FAMILY_NAME, /* FT_String* */ 57341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier PS_DICT_WEIGHT, /* FT_String* */ 57427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_IS_FIXED_PITCH, /* FT_Bool */ 57527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_UNDERLINE_POSITION, /* FT_Short */ 57627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */ 57727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_FS_TYPE, /* FT_UShort */ 57827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_ITALIC_ANGLE, /* FT_Long */ 57927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 58027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_DICT_MAX = PS_DICT_ITALIC_ANGLE 58127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 58227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra } PS_Dict_Keys; 58327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 58427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 58527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /************************************************************************ 58627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 58727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @function: 58827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * FT_Get_PS_Font_Value 58927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 59027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @description: 59127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * Retrieve the value for the supplied key from a PostScript font. 59227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 59327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @input: 59427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * face :: 59527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * PostScript face handle. 59627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 59727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * key :: 59827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * An enumeration value representing the dictionary key to retrieve. 59927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 60027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * idx :: 60127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * For array values, this specifies the index to be returned. 60227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 60327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * value :: 60427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * A pointer to memory into which to write the value. 60527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 60627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * valen_len :: 60727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * The size, in bytes, of the memory supplied for the value. 60827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 60927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @output: 61027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * value :: 61127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * The value matching the above key, if it exists. 61227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 61327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @return: 61427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * The amount of memory (in bytes) required to hold the requested 61527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * value (if it exists, -1 otherwise). 61627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 61727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * @note: 61827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * The values returned are not pointers into the internal structures of 61927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * the face, but are `fresh' copies, so that the memory containing them 62027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * belongs to the calling application. This also enforces the 62127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * `read-only' nature of these values, i.e., this function cannot be 62227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * used to manipulate the face. 62327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 62427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * `value' is a void pointer because the values returned can be of 62527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * various types. 62627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 62727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * If either `value' is NULL or `value_len' is too small, just the 62827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * required memory size for the requested entry is returned. 62927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 63027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * The `idx' parameter is used, not only to retrieve elements of, for 63127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * example, the FontMatrix or FontBBox, but also to retrieve name keys 63227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * from the CharStrings dictionary, and the charstrings themselves. It 63327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * is ignored for atomic values. 63427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 63527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To 63627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * get the value as in the font stream, you need to divide by 63727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). 63827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 63927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * IMPORTANT: Only key/value pairs read by the FreeType interpreter can 64027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * be retrieved. So, for example, PostScript procedures such as NP, 64127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * ND, and RD are not available. Arbitrary keys are, obviously, not be 64227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * available either. 64327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 64427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * If the font's format is not PostScript-based, this function returns 64527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * the `FT_Err_Invalid_Argument' error code. 64627811904d8de0ce5591417812ca31163bf5aad60Geremy Condra * 64727811904d8de0ce5591417812ca31163bf5aad60Geremy Condra */ 64827811904d8de0ce5591417812ca31163bf5aad60Geremy Condra FT_EXPORT( FT_Long ) 64927811904d8de0ce5591417812ca31163bf5aad60Geremy Condra FT_Get_PS_Font_Value( FT_Face face, 65027811904d8de0ce5591417812ca31163bf5aad60Geremy Condra PS_Dict_Keys key, 65127811904d8de0ce5591417812ca31163bf5aad60Geremy Condra FT_UInt idx, 65227811904d8de0ce5591417812ca31163bf5aad60Geremy Condra void *value, 65327811904d8de0ce5591417812ca31163bf5aad60Geremy Condra FT_Long value_len ); 65427811904d8de0ce5591417812ca31163bf5aad60Geremy Condra 65527811904d8de0ce5591417812ca31163bf5aad60Geremy Condra /* */ 656049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 657049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 658049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 659049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __T1TABLES_H__ */ 660049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 661049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 662049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 663