1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* cffobjs.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* OpenType objects manager (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __CFFOBJS_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __CFFOBJS_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_OBJECTS_H 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "cfftypes.h" 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_TRUETYPE_TYPES_H 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_SERVICE_POSTSCRIPT_CMAPS_H 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_POSTSCRIPT_HINTS_H 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 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 /* <Type> */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CFF_Driver */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to an OpenType driver object. */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_DriverRec_* CFF_Driver; 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef TT_Face CFF_Face; 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CFF_Size */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to an OpenType size object. */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_SizeRec_ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_SizeRec root; 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_SizeRec, *CFF_Size; 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CFF_GlyphSlot */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to an OpenType glyph slot object. */ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_GlyphSlotRec_ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_GlyphSlotRec root; 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool hint; 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool scaled; 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed x_scale; 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed y_scale; 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_GlyphSlotRec, *CFF_GlyphSlot; 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 /* <Type> */ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* CFF_Internal */ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The interface to the `internal' field of `FT_Size'. */ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_InternalRec_ 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals topfont; 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project PSH_Globals subfonts[CFF_MAX_CID_FONTS]; 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_InternalRec, *CFF_Internal; 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Subglyph transformation record. */ 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_Transform_ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed xx, xy; /* transformation matrix coefficients */ 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed yx, yy; 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_F26Dot6 ox, oy; /* offsets */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_Transform; 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /***********************************************************************/ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* TrueType driver class. */ 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct CFF_DriverRec_ 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_DriverRec root; 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project void* extension_component; 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } CFF_DriverRec; 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_size_init( FT_Size size ); /* CFF_Size */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_size_done( FT_Size size ); /* CFF_Size */ 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_size_request( FT_Size size, 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Size_Request req ); 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_size_select( FT_Size size, 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ULong strike_index ); 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_slot_done( FT_GlyphSlot slot ); 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_slot_init( FT_GlyphSlot slot ); 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Face functions */ 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_face_init( FT_Stream stream, 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Face face, /* CFF_Face */ 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int face_index, 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int num_params, 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Parameter* params ); 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_face_done( FT_Face face ); /* CFF_Face */ 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Driver functions */ 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_driver_init( FT_Module module ); 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project cff_driver_done( FT_Module module ); 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __CFFOBJS_H__ */ 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 182