1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* pshints.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Interface to Postscript-specific (Type 1 and Type 2) hints */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* recorders (specification only). These are used to support native */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 9727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* Copyright 2001-2003, 2005-2007, 2009, 2012 by */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __PSHINTS_H__ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __PSHINTS_H__ 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_TYPE1_TABLES_H 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** INTERNAL REPRESENTATION OF GLOBALS *****/ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PSH_GlobalsRec_* PSH_Globals; 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*PSH_Globals_NewFunc)( FT_Memory memory, 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Private* private_dict, 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals* aglobals ); 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed x_scale, 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed y_scale, 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed x_delta, 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed y_delta ); 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PSH_Globals_FuncsRec_ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals_NewFunc create; 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals_SetScaleFunc set_scale; 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals_DestroyFunc destroy; 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** PUBLIC TYPE 1 HINTS RECORDER *****/ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This is a handle to an opaque structure used to record glyph hints 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from a Type 1 character glyph character string. 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The methods used to operate on this object are defined by the 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @T1_Hints_FuncsRec structure. Recording glyph hints is normally 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * achieved through the following scheme: 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - Open a new hint recording session by calling the `open' method. 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This rewinds the recorder and prepare it for new input. 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - For each hint found in the glyph charstring, call the corresponding 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * method (`stem', `stem3', or `reset'). Note that these functions do 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * not return an error code. 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - Close the recording session by calling the `close' method. It 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * returns an error code if the hints were invalid or something 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * strange happened (e.g., memory shortage). 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The hints accumulated in the object can later be used by the 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * PostScript hinter. 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct T1_HintsRec_* T1_Hints; 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_Funcs 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the @T1_Hints_FuncsRec structure that defines the API of 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * a given @T1_Hints object. 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_OpenFunc 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to prepare it for a new Type 1 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints recording session. 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should always call the @T1_Hints_CloseFunc method in order to 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * close an opened recording session. 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T1_Hints_OpenFunc)( T1_Hints hints ); 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_SetStemFunc 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to record a new horizontal or 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vertical stem. This corresponds to the Type 1 `hstem' and `vstem' 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * operators. 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * dimension :: 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * coords :: 160295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * Array of 2 coordinates in 16.16 format, used as (position,length) 161295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * stem descriptor. 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Use vertical coordinates (y) for horizontal stems (dim=0). Use 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * horizontal coordinates (x) for vertical stems (dim=1). 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `coords[0]' is the absolute stem position (lowest coordinate); 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `coords[1]' is the length. 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The length can be negative, in which case it must be either -20 or 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * -21. It is interpreted as a `ghost' stem, according to the Type 1 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * specification. 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If the length is -21 (corresponding to a bottom ghost stem), then 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the real stem position is `coords[0]+coords[1]'. 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 179295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner (*T1_Hints_SetStemFunc)( T1_Hints hints, 180295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_UInt dimension, 181295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Fixed* coords ); 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_SetStem3Func 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to record three 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * counter-controlled horizontal or vertical stems at once. 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * dimension :: 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 0 for horizontal stems, 1 for vertical ones. 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * coords :: 201295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * An array of 6 values in 16.16 format, holding 3 (position,length) 202295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * pairs for the counter-controlled stems. 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Use vertical coordinates (y) for horizontal stems (dim=0). Use 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * horizontal coordinates (x) for vertical stems (dim=1). 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The lengths cannot be negative (ghost stems are never 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * counter-controlled). 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 213295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner (*T1_Hints_SetStem3Func)( T1_Hints hints, 214295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_UInt dimension, 215295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Fixed* coords ); 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_ResetFunc 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to reset the stems hints in a 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * recording session. 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * end_point :: 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The index of the last point in the input glyph in which the 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * previously defined hints apply. 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T1_Hints_ResetFunc)( T1_Hints hints, 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt end_point ); 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_CloseFunc 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to close a hint recording 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * session. 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * end_point :: 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The index of the last point in the input glyph. 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FreeType error code. 0 means success. 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The error code is set to indicate that an error occurred during the 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * recording session. 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T1_Hints_CloseFunc)( T1_Hints hints, 267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt end_point ); 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_ApplyFunc 274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T1_Hints class used to apply hints to the 277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * corresponding glyph outline. Must be called once all hints have been 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * recorded. 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 1 hints recorder. 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the target outline descriptor. 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * globals :: 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The hinter globals for this font. 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hint_mode :: 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Hinting information. 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 293049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FreeType error code. 0 means success. 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * On input, all points within the outline are in font coordinates. On 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * output, they are in 1/64th of pixels. 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The scaling transformation is taken from the `globals' object which 301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * must correspond to the same font as the glyph. 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T1_Hints_ApplyFunc)( T1_Hints hints, 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* outline, 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals globals, 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Render_Mode hint_mode ); 309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @struct: 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T1_Hints_FuncsRec 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The structure used to provide the API to @T1_Hints objects. 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @fields: 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the T1 Hints recorder. 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * open :: 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to open a recording session. 325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * close :: 327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to close a recording session. 328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 329049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stem :: 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to set a simple stem. 331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stem3 :: 333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to set counter-controlled stems. 334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * reset :: 336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to reset stem hints. 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * apply :: 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to apply the hints to the corresponding glyph outline. 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct T1_Hints_FuncsRec_ 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints hints; 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_OpenFunc open; 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_CloseFunc close; 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_SetStemFunc stem; 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_SetStem3Func stem3; 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_ResetFunc reset; 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_ApplyFunc apply; 351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } T1_Hints_FuncsRec; 353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** PUBLIC TYPE 2 HINTS RECORDER *****/ 359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***** *****/ 360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 365049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints 367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This is a handle to an opaque structure used to record glyph hints 370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from a Type 2 character glyph character string. 371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The methods used to operate on this object are defined by the 373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @T2_Hints_FuncsRec structure. Recording glyph hints is normally 374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * achieved through the following scheme: 375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - Open a new hint recording session by calling the `open' method. 377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This rewinds the recorder and prepare it for new input. 378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - For each hint found in the glyph charstring, call the corresponding 380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * method (`stems', `hintmask', `counters'). Note that these 381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * functions do not return an error code. 382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * - Close the recording session by calling the `close' method. It 384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * returns an error code if the hints were invalid or something 385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * strange happened (e.g., memory shortage). 386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The hints accumulated in the object can later be used by the 388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Postscript hinter. 389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 390049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct T2_HintsRec_* T2_Hints; 392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 394049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_Funcs 398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the @T2_Hints_FuncsRec structure that defines the API of 401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * a given @T2_Hints object. 402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; 405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_OpenFunc 411049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to prepare it for a new Type 2 414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints recording session. 415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 416049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 418049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should always call the @T2_Hints_CloseFunc method in order to 422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * close an opened recording session. 423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_OpenFunc)( T2_Hints hints ); 427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_StemsFunc 433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to set the table of stems in 436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * either the vertical or horizontal dimension. Equivalent to the 437049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators. 438049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 442049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * dimension :: 444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). 445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * count :: 447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of stems. 448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 449049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * coords :: 450295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * An array of `count' (position,length) pairs in 16.16 format. 451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Use vertical coordinates (y) for horizontal stems (dim=0). Use 454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * horizontal coordinates (x) for vertical stems (dim=1). 455049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * There are `2*count' elements in the `coords' array. Each even 457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * element is an absolute position in font units, each odd element is a 458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * length in font units. 459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 460049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A length can be negative, in which case it must be either -20 or 461049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * -21. It is interpreted as a `ghost' stem, according to the Type 1 462049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * specification. 463049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 464049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 465049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 466049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_StemsFunc)( T2_Hints hints, 467049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt dimension, 468049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt count, 469049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed* coordinates ); 470049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 471049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 472049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 473049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 474049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 475049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_MaskFunc 476049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 477049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 478049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to set a given hintmask (this 479049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * corresponds to the `hintmask' Type 2 operator). 480049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 481049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 482049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 483049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 484049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 485049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * end_point :: 486049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The glyph index of the last point to which the previously defined 487049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * or activated hints apply. 488049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 489049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * bit_count :: 490049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of bits in the hint mask. 491049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 492049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * bytes :: 493049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * An array of bytes modelling the hint mask. 494049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 495049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 496049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If the hintmask starts the charstring (before any glyph point 497049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * definition), the value of `end_point' should be 0. 498049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 499049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `bit_count' is the number of meaningful bits in the `bytes' array; it 500049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * must be equal to the total number of hints defined so far (i.e., 501049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * horizontal+verticals). 502049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 503049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The `bytes' array can come directly from the Type 2 charstring and 504049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * respects the same format. 505049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 506049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 507049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 508049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_MaskFunc)( T2_Hints hints, 509049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt end_point, 510049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt bit_count, 511049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project const FT_Byte* bytes ); 512049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 513049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 514049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 515049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 516049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 517049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_CounterFunc 518049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 519049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 520049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to set a given counter mask 521049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * (this corresponds to the `hintmask' Type 2 operator). 522049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 523049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 524049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 525049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 526049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 527049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * end_point :: 528049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A glyph index of the last point to which the previously defined or 529049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * active hints apply. 530049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 531049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * bit_count :: 532049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of bits in the hint mask. 533049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 534049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * bytes :: 535049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * An array of bytes modelling the hint mask. 536049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 537049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 538049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If the hintmask starts the charstring (before any glyph point 539049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * definition), the value of `end_point' should be 0. 540049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 541049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `bit_count' is the number of meaningful bits in the `bytes' array; it 542049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * must be equal to the total number of hints defined so far (i.e., 543049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * horizontal+verticals). 544049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 545049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The `bytes' array can come directly from the Type 2 charstring and 546049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * respects the same format. 547049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 548049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 549049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void 550049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_CounterFunc)( T2_Hints hints, 551049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt bit_count, 552049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project const FT_Byte* bytes ); 553049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 554049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 555049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 556049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 557049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 558049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_CloseFunc 559049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 560049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 561049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to close a hint recording 562049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * session. 563049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 564049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 565049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 566049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 567049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 568049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * end_point :: 569049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The index of the last point in the input glyph. 570049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 571049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 572049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FreeType error code. 0 means success. 573049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 574049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 575049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The error code is set to indicate that an error occurred during the 576049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * recording session. 577049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 578049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 579049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 580049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_CloseFunc)( T2_Hints hints, 581049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt end_point ); 582049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 583049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 584049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 585049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 586049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @functype: 587049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_ApplyFunc 588049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 589049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 590049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A method of the @T2_Hints class used to apply hints to the 591049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * corresponding glyph outline. Must be called after the `close' 592049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * method. 593049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 594049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 595049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 596049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the Type 2 hints recorder. 597049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 598049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 599049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the target outline descriptor. 600049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 601049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * globals :: 602049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The hinter globals for this font. 603049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 604049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hint_mode :: 605049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Hinting information. 606049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 607049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 608049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FreeType error code. 0 means success. 609049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 610049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 611049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * On input, all points within the outline are in font coordinates. On 612049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * output, they are in 1/64th of pixels. 613049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 614049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The scaling transformation is taken from the `globals' object which 615049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * must correspond to the same font than the glyph. 616049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 617049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 618049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 619049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*T2_Hints_ApplyFunc)( T2_Hints hints, 620049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* outline, 621049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals globals, 622049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Render_Mode hint_mode ); 623049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 624049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 625049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 626049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 627049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @struct: 628049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * T2_Hints_FuncsRec 629049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 630049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 631049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The structure used to provide the API to @T2_Hints objects. 632049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 633049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @fields: 634049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hints :: 635049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A handle to the T2 hints recorder object. 636049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 637049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * open :: 638049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to open a recording session. 639049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 640049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * close :: 641049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to close a recording session. 642049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 643049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stems :: 644049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to set the dimension's stems table. 645049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 646049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * hintmask :: 647049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to set hint masks. 648049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 649049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * counter :: 650049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to set counter masks. 651049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 652049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * apply :: 653049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The function to apply the hints on the corresponding glyph outline. 654049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 655049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 656049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct T2_Hints_FuncsRec_ 657049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 658049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints hints; 659049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_OpenFunc open; 660049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_CloseFunc close; 661049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_StemsFunc stems; 662049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_MaskFunc hintmask; 663049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_CounterFunc counter; 664049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_ApplyFunc apply; 665049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 666049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } T2_Hints_FuncsRec; 667049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 668049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 669049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 670049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 671049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 672049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct PSHinter_Interface_ 673049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 674049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); 675049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); 676049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); 677049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 678049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } PSHinter_Interface; 679049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 680049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef PSHinter_Interface* PSHinter_Service; 681049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 682727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 683295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifndef FT_CONFIG_OPTION_PIC 684295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 685727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_DEFINE_PSHINTER_INTERFACE( \ 686727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease class_, \ 687727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_globals_funcs_, \ 688727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t1_funcs_, \ 689727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t2_funcs_ ) \ 690727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease static const PSHinter_Interface class_ = \ 691727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease { \ 692727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_globals_funcs_, \ 693727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t1_funcs_, \ 694727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t2_funcs_ \ 695295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner }; 696295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 69741371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#else /* FT_CONFIG_OPTION_PIC */ 698295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 699727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_DEFINE_PSHINTER_INTERFACE( \ 700727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease class_, \ 701727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_globals_funcs_, \ 702727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t1_funcs_, \ 703727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_t2_funcs_ ) \ 704727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease void \ 705727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Init_Class_ ## class_( FT_Library library, \ 706727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease PSHinter_Interface* clazz ) \ 707727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease { \ 708727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_UNUSED( library ); \ 709727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease \ 710727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease clazz->get_globals_funcs = get_globals_funcs_; \ 711727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease clazz->get_t1_funcs = get_t1_funcs_; \ 712727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease clazz->get_t2_funcs = get_t2_funcs_; \ 71341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier } 714295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 71541371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#endif /* FT_CONFIG_OPTION_PIC */ 716049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 717049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 718049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 719049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __PSHINTS_H__ */ 720049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 721049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 722049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 723