1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* cidobjs.h */ 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* CID objects manager (specification). */ 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Copyright 1996-2001, 2002, 2004, 2006 by */ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* This file is part of the FreeType project, and may only be used, */ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* modified, and distributed under the terms of the FreeType project */ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* this file you indicate that you have read the license and */ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* understand and accept it fully. */ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __CIDOBJS_H__ 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __CIDOBJS_H__ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/ft2build.h" 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftobjs.h" 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/config/ftconfig.h" 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/t1types.h" 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The following structures must be defined by the hinter */ 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_Size_Hints_ CID_Size_Hints; 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_Glyph_Hints_ CID_Glyph_Hints; 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Type> */ 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* CID_Driver */ 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A handle to a Type 1 driver object. */ 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_DriverRec_* CID_Driver; 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Type> */ 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* CID_Size */ 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A handle to a Type 1 size object. */ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_SizeRec_* CID_Size; 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Type> */ 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* CID_GlyphSlot */ 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A handle to a Type 1 glyph slot object. */ 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_GlyphSlotRec_* CID_GlyphSlot; 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Type> */ 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* CID_CharMap */ 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A handle to a Type 1 character mapping object. */ 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Note> */ 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The Type 1 format doesn't use a charmap but an encoding table. */ 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The driver is responsible for making up charmap objects */ 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* corresponding to these tables. */ 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_CharMapRec_* CID_CharMap; 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF */ 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_SizeRec_ 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_SizeRec root; 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool valid; 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CID_SizeRec; 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct CID_GlyphSlotRec_ 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_GlyphSlotRec root; 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool hint; 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Bool scaled; 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed x_scale; 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Fixed y_scale; 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } CID_GlyphSlotRec; 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( void ) 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_slot_done( FT_GlyphSlot slot ); 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( FT_Error ) 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_slot_init( FT_GlyphSlot slot ); 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( void ) 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_size_done( FT_Size size ); /* CID_Size */ 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( FT_Error ) 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_size_init( FT_Size size ); /* CID_Size */ 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( FT_Error ) 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_size_request( FT_Size size, /* CID_Size */ 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Size_Request req ); 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( FT_Error ) 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_face_init( FT_Stream stream, 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Face face, /* CID_Face */ 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int face_index, 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Int num_params, 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Parameter* params ); 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( void ) 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_face_done( FT_Face face ); /* CID_Face */ 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( FT_Error ) 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_driver_init( FT_Module driver ); 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_LOCAL( void ) 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov cid_driver_done( FT_Module driver ); 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __CIDOBJS_H__ */ 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */ 155