Home | History | Annotate | Download | only in pfr
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  pfrobjs.h                                                              */
      4 /*                                                                         */
      5 /*    FreeType PFR object methods (specification).                         */
      6 /*                                                                         */
      7 /*  Copyright 2002-2018 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 PFROBJS_H_
     20 #define PFROBJS_H_
     21 
     22 #include "pfrtypes.h"
     23 
     24 
     25 FT_BEGIN_HEADER
     26 
     27   typedef struct PFR_FaceRec_*  PFR_Face;
     28 
     29   typedef struct PFR_SizeRec_*  PFR_Size;
     30 
     31   typedef struct PFR_SlotRec_*  PFR_Slot;
     32 
     33 
     34   typedef struct  PFR_FaceRec_
     35   {
     36     FT_FaceRec      root;
     37     PFR_HeaderRec   header;
     38     PFR_LogFontRec  log_font;
     39     PFR_PhyFontRec  phy_font;
     40 
     41   } PFR_FaceRec;
     42 
     43 
     44   typedef struct  PFR_SizeRec_
     45   {
     46     FT_SizeRec  root;
     47 
     48   } PFR_SizeRec;
     49 
     50 
     51   typedef struct  PFR_SlotRec_
     52   {
     53     FT_GlyphSlotRec  root;
     54     PFR_GlyphRec     glyph;
     55 
     56   } PFR_SlotRec;
     57 
     58 
     59   FT_LOCAL( FT_Error )
     60   pfr_face_init( FT_Stream      stream,
     61                  FT_Face        face,           /* PFR_Face */
     62                  FT_Int         face_index,
     63                  FT_Int         num_params,
     64                  FT_Parameter*  params );
     65 
     66   FT_LOCAL( void )
     67   pfr_face_done( FT_Face  face );               /* PFR_Face */
     68 
     69 
     70   FT_LOCAL( FT_Error )
     71   pfr_face_get_kerning( FT_Face     face,       /* PFR_Face */
     72                         FT_UInt     glyph1,
     73                         FT_UInt     glyph2,
     74                         FT_Vector*  kerning );
     75 
     76 
     77   FT_LOCAL( FT_Error )
     78   pfr_slot_init( FT_GlyphSlot  slot );          /* PFR_Slot */
     79 
     80   FT_LOCAL( void )
     81   pfr_slot_done( FT_GlyphSlot  slot );          /* PFR_Slot */
     82 
     83 
     84   FT_LOCAL( FT_Error )
     85   pfr_slot_load( FT_GlyphSlot  slot,            /* PFR_Slot */
     86                  FT_Size       size,            /* PFR_Size */
     87                  FT_UInt       gindex,
     88                  FT_Int32      load_flags );
     89 
     90 
     91 FT_END_HEADER
     92 
     93 #endif /* PFROBJS_H_ */
     94 
     95 
     96 /* END */
     97