1/***************************************************************************/ 2/* */ 3/* cffobjs.h */ 4/* */ 5/* OpenType objects manager (specification). */ 6/* */ 7/* Copyright 1996-2004, 2006-2008, 2013 by */ 8/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9/* */ 10/* This file is part of the FreeType project, and may only be used, */ 11/* modified, and distributed under the terms of the FreeType project */ 12/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13/* this file you indicate that you have read the license and */ 14/* understand and accept it fully. */ 15/* */ 16/***************************************************************************/ 17 18 19#ifndef __CFFOBJS_H__ 20#define __CFFOBJS_H__ 21 22 23#include <ft2build.h> 24#include FT_INTERNAL_OBJECTS_H 25#include "cfftypes.h" 26#include FT_INTERNAL_TRUETYPE_TYPES_H 27#include FT_SERVICE_POSTSCRIPT_CMAPS_H 28#include FT_INTERNAL_POSTSCRIPT_HINTS_H 29 30 31FT_BEGIN_HEADER 32 33 34 /*************************************************************************/ 35 /* */ 36 /* <Type> */ 37 /* CFF_Driver */ 38 /* */ 39 /* <Description> */ 40 /* A handle to an OpenType driver object. */ 41 /* */ 42 typedef struct CFF_DriverRec_* CFF_Driver; 43 44 typedef TT_Face CFF_Face; 45 46 47 /*************************************************************************/ 48 /* */ 49 /* <Type> */ 50 /* CFF_Size */ 51 /* */ 52 /* <Description> */ 53 /* A handle to an OpenType size object. */ 54 /* */ 55 typedef struct CFF_SizeRec_ 56 { 57 FT_SizeRec root; 58 FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ 59 60 } CFF_SizeRec, *CFF_Size; 61 62 63 /*************************************************************************/ 64 /* */ 65 /* <Type> */ 66 /* CFF_GlyphSlot */ 67 /* */ 68 /* <Description> */ 69 /* A handle to an OpenType glyph slot object. */ 70 /* */ 71 typedef struct CFF_GlyphSlotRec_ 72 { 73 FT_GlyphSlotRec root; 74 75 FT_Bool hint; 76 FT_Bool scaled; 77 78 FT_Fixed x_scale; 79 FT_Fixed y_scale; 80 81 } CFF_GlyphSlotRec, *CFF_GlyphSlot; 82 83 84 /*************************************************************************/ 85 /* */ 86 /* <Type> */ 87 /* CFF_Internal */ 88 /* */ 89 /* <Description> */ 90 /* The interface to the `internal' field of `FT_Size'. */ 91 /* */ 92 typedef struct CFF_InternalRec_ 93 { 94 PSH_Globals topfont; 95 PSH_Globals subfonts[CFF_MAX_CID_FONTS]; 96 97 } CFF_InternalRec, *CFF_Internal; 98 99 100 /*************************************************************************/ 101 /* */ 102 /* Subglyph transformation record. */ 103 /* */ 104 typedef struct CFF_Transform_ 105 { 106 FT_Fixed xx, xy; /* transformation matrix coefficients */ 107 FT_Fixed yx, yy; 108 FT_F26Dot6 ox, oy; /* offsets */ 109 110 } CFF_Transform; 111 112 113 /***********************************************************************/ 114 /* */ 115 /* CFF driver class. */ 116 /* */ 117 typedef struct CFF_DriverRec_ 118 { 119 FT_DriverRec root; 120 121 FT_UInt hinting_engine; 122 FT_Bool no_stem_darkening; 123 124 } CFF_DriverRec; 125 126 127 FT_LOCAL( FT_Error ) 128 cff_size_init( FT_Size size ); /* CFF_Size */ 129 130 FT_LOCAL( void ) 131 cff_size_done( FT_Size size ); /* CFF_Size */ 132 133 FT_LOCAL( FT_Error ) 134 cff_size_request( FT_Size size, 135 FT_Size_Request req ); 136 137#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 138 139 FT_LOCAL( FT_Error ) 140 cff_size_select( FT_Size size, 141 FT_ULong strike_index ); 142 143#endif 144 145 FT_LOCAL( void ) 146 cff_slot_done( FT_GlyphSlot slot ); 147 148 FT_LOCAL( FT_Error ) 149 cff_slot_init( FT_GlyphSlot slot ); 150 151 152 /*************************************************************************/ 153 /* */ 154 /* Face functions */ 155 /* */ 156 FT_LOCAL( FT_Error ) 157 cff_face_init( FT_Stream stream, 158 FT_Face face, /* CFF_Face */ 159 FT_Int face_index, 160 FT_Int num_params, 161 FT_Parameter* params ); 162 163 FT_LOCAL( void ) 164 cff_face_done( FT_Face face ); /* CFF_Face */ 165 166 167 /*************************************************************************/ 168 /* */ 169 /* Driver functions */ 170 /* */ 171 FT_LOCAL( FT_Error ) 172 cff_driver_init( FT_Module module ); /* CFF_Driver */ 173 174 FT_LOCAL( void ) 175 cff_driver_done( FT_Module module ); /* CFF_Driver */ 176 177 178FT_END_HEADER 179 180#endif /* __CFFOBJS_H__ */ 181 182 183/* END */ 184