1 /***************************************************************************/ 
   5 /*    Experimental Type 1 objects manager (specification).                 */ 
   7 /*  Copyright 1996-2000 by                                                 */ 
   8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */ 
  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.                                        */ 
  16 /***************************************************************************/ 
  22 #include <freetype/internal/ftobjs.h> 
  23 #include <freetype/config/ftconfig.h> 
  24 #include <freetype/internal/t1errors.h> 
  25 #include <freetype/internal/t1types.h> 
  31   /* The following structures must be defined by the hinter */ 
  32   typedef struct Z1_Size_Hints_   Z1_Size_Hints
; 
  33   typedef struct Z1_Glyph_Hints_  Z1_Glyph_Hints
; 
  36   /*************************************************************************/ 
  42   /*    A handle to a Type 1 driver object.                                */ 
  44   typedef struct Z1_DriverRec_   
*Z1_Driver
; 
  47   /*************************************************************************/ 
  53   /*    A handle to a Type 1 size object.                                  */ 
  55   typedef struct Z1_SizeRec_
*  Z1_Size
; 
  58   /*************************************************************************/ 
  64   /*    A handle to a Type 1 glyph slot object.                            */ 
  66   typedef struct Z1_GlyphSlotRec_
*  Z1_GlyphSlot
; 
  69   /*************************************************************************/ 
  75   /*    A handle to a Type 1 character mapping object.                     */ 
  78   /*    The Type 1 format doesn't use a charmap but an encoding table.     */ 
  79   /*    The driver is responsible for making up charmap objects            */ 
  80   /*    corresponding to these tables.                                     */ 
  82   typedef struct Z1_CharMapRec_
*   Z1_CharMap
; 
  85   /*************************************************************************/ 
  87   /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */ 
  89   /*************************************************************************/ 
  92   /*************************************************************************/ 
  98   /*    Type 1 size record.                                                */ 
 100   typedef struct  Z1_SizeRec_
 
 104     Z1_Size_Hints
*  hints
;  /* defined in the hinter. This allows */ 
 105                             /* us to experiment with different    */ 
 106                             /* hinting schemes without having to  */ 
 107                             /* change `z1objs' each time.         */ 
 111   /*************************************************************************/ 
 114   /*    Z1_GlyphSlotRec                                                    */ 
 117   /*    Type 1 glyph slot record.                                          */ 
 119   typedef struct  Z1_GlyphSlotRec_
 
 121     FT_GlyphSlotRec  root
; 
 132     Z1_Glyph_Hints
*  hints
;  /* defined in the hinter */ 
 138   FT_Error  
Z1_Init_Face( FT_Stream      stream
, 
 142                           FT_Parameter
*  params 
); 
 145   void  Z1_Done_Face( T1_Face  face 
); 
 148   FT_Error  
Z1_Init_Driver( Z1_Driver  driver 
); 
 151   void  Z1_Done_Driver( Z1_Driver  driver 
); 
 158 #endif /* Z1OBJS_H */