cffobjs.h

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  cffobjs.h                                                              */
00004 /*                                                                         */
00005 /*    OpenType objects manager (specification).                            */
00006 /*                                                                         */
00007 /*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by             */
00008 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
00015 /*                                                                         */
00016 /***************************************************************************/
00017 
00018 
00019 #ifndef __CFFOBJS_H__
00020 #define __CFFOBJS_H__
00021 
00022 
00023 #include <ft2build.h>
00024 #include FT_INTERNAL_OBJECTS_H
00025 #include "cfftypes.h"
00026 #include FT_INTERNAL_TRUETYPE_TYPES_H
00027 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
00028 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
00029 
00030 
00031 FT_BEGIN_HEADER
00032 
00033 
00034   /*************************************************************************/
00035   /*                                                                       */
00036   /* <Type>                                                                */
00037   /*    CFF_Driver                                                         */
00038   /*                                                                       */
00039   /* <Description>                                                         */
00040   /*    A handle to an OpenType driver object.                             */
00041   /*                                                                       */
00042   typedef struct CFF_DriverRec_*  CFF_Driver;
00043 
00044   typedef TT_Face  CFF_Face;
00045 
00046 
00047   /*************************************************************************/
00048   /*                                                                       */
00049   /* <Type>                                                                */
00050   /*    CFF_Size                                                           */
00051   /*                                                                       */
00052   /* <Description>                                                         */
00053   /*    A handle to an OpenType size object.                               */
00054   /*                                                                       */
00055   typedef struct  CFF_SizeRec_
00056   {
00057     FT_SizeRec  root;
00058     FT_ULong    strike_index;    /* 0xFFFFFFFF to indicate invalid */
00059 
00060   } CFF_SizeRec, *CFF_Size;
00061 
00062 
00063   /*************************************************************************/
00064   /*                                                                       */
00065   /* <Type>                                                                */
00066   /*    CFF_GlyphSlot                                                      */
00067   /*                                                                       */
00068   /* <Description>                                                         */
00069   /*    A handle to an OpenType glyph slot object.                         */
00070   /*                                                                       */
00071   typedef struct  CFF_GlyphSlotRec_
00072   {
00073     FT_GlyphSlotRec  root;
00074 
00075     FT_Bool          hint;
00076     FT_Bool          scaled;
00077 
00078     FT_Fixed         x_scale;
00079     FT_Fixed         y_scale;
00080 
00081   } CFF_GlyphSlotRec, *CFF_GlyphSlot;
00082 
00083 
00084   /*************************************************************************/
00085   /*                                                                       */
00086   /* <Type>                                                                */
00087   /*    CFF_Internal                                                       */
00088   /*                                                                       */
00089   /* <Description>                                                         */
00090   /*    The interface to the `internal' field of `FT_Size'.                */
00091   /*                                                                       */
00092   typedef struct  CFF_InternalRec_
00093   {
00094     PSH_Globals  topfont;
00095     PSH_Globals  subfonts[CFF_MAX_CID_FONTS];
00096 
00097   } CFF_InternalRec, *CFF_Internal;
00098 
00099 
00100   /*************************************************************************/
00101   /*                                                                       */
00102   /* Subglyph transformation record.                                       */
00103   /*                                                                       */
00104   typedef struct  CFF_Transform_
00105   {
00106     FT_Fixed    xx, xy;     /* transformation matrix coefficients */
00107     FT_Fixed    yx, yy;
00108     FT_F26Dot6  ox, oy;     /* offsets        */
00109 
00110   } CFF_Transform;
00111 
00112 
00113   /***********************************************************************/
00114   /*                                                                     */
00115   /* TrueType driver class.                                              */
00116   /*                                                                     */
00117   typedef struct  CFF_DriverRec_
00118   {
00119     FT_DriverRec  root;
00120     void*         extension_component;
00121 
00122   } CFF_DriverRec;
00123 
00124 
00125   FT_LOCAL( FT_Error )
00126   cff_size_init( FT_Size  size );           /* CFF_Size */
00127 
00128   FT_LOCAL( void )
00129   cff_size_done( FT_Size  size );           /* CFF_Size */
00130 
00131   FT_LOCAL( FT_Error )
00132   cff_size_request( FT_Size          size,
00133                     FT_Size_Request  req );
00134 
00135 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
00136 
00137   FT_LOCAL( FT_Error )
00138   cff_size_select( FT_Size   size,
00139                    FT_ULong  strike_index );
00140 
00141 #endif
00142 
00143   FT_LOCAL( void )
00144   cff_slot_done( FT_GlyphSlot  slot );
00145 
00146   FT_LOCAL( FT_Error )
00147   cff_slot_init( FT_GlyphSlot  slot );
00148 
00149 
00150   /*************************************************************************/
00151   /*                                                                       */
00152   /* Face functions                                                        */
00153   /*                                                                       */
00154   FT_LOCAL( FT_Error )
00155   cff_face_init( FT_Stream      stream,
00156                  FT_Face        face,           /* CFF_Face */
00157                  FT_Int         face_index,
00158                  FT_Int         num_params,
00159                  FT_Parameter*  params );
00160 
00161   FT_LOCAL( void )
00162   cff_face_done( FT_Face  face );               /* CFF_Face */
00163 
00164 
00165   /*************************************************************************/
00166   /*                                                                       */
00167   /* Driver functions                                                      */
00168   /*                                                                       */
00169   FT_LOCAL( FT_Error )
00170   cff_driver_init( FT_Module  module );
00171 
00172   FT_LOCAL( void )
00173   cff_driver_done( FT_Module  module );
00174 
00175 
00176 FT_END_HEADER
00177 
00178 #endif /* __CFFOBJS_H__ */
00179 
00180 
00181 /* END */

Generated on Tue Jul 5 14:13:46 2011 for ROOT_528-00b_version by  doxygen 1.5.1