Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  t1objs.h                                                               */
  4. /*                                                                         */
  5. /*    Type 1 objects manager (specification).                              */
  6. /*                                                                         */
  7. /*  Copyright 1996-2001, 2002, 2006, 2011 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 __T1OBJS_H__
  20. #define __T1OBJS_H__
  21.  
  22.  
  23. #include <ft2build.h>
  24. #include FT_INTERNAL_OBJECTS_H
  25. #include FT_CONFIG_CONFIG_H
  26. #include FT_INTERNAL_TYPE1_TYPES_H
  27.  
  28.  
  29. FT_BEGIN_HEADER
  30.  
  31.  
  32.   /* The following structures must be defined by the hinter */
  33.   typedef struct T1_Size_Hints_   T1_Size_Hints;
  34.   typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;
  35.  
  36.  
  37.   /*************************************************************************/
  38.   /*                                                                       */
  39.   /* <Type>                                                                */
  40.   /*    T1_Size                                                            */
  41.   /*                                                                       */
  42.   /* <Description>                                                         */
  43.   /*    A handle to a Type 1 size object.                                  */
  44.   /*                                                                       */
  45.   typedef struct T1_SizeRec_*  T1_Size;
  46.  
  47.  
  48.   /*************************************************************************/
  49.   /*                                                                       */
  50.   /* <Type>                                                                */
  51.   /*    T1_GlyphSlot                                                       */
  52.   /*                                                                       */
  53.   /* <Description>                                                         */
  54.   /*    A handle to a Type 1 glyph slot object.                            */
  55.   /*                                                                       */
  56.   typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
  57.  
  58.  
  59.   /*************************************************************************/
  60.   /*                                                                       */
  61.   /* <Type>                                                                */
  62.   /*    T1_CharMap                                                         */
  63.   /*                                                                       */
  64.   /* <Description>                                                         */
  65.   /*    A handle to a Type 1 character mapping object.                     */
  66.   /*                                                                       */
  67.   /* <Note>                                                                */
  68.   /*    The Type 1 format doesn't use a charmap but an encoding table.     */
  69.   /*    The driver is responsible for making up charmap objects            */
  70.   /*    corresponding to these tables.                                     */
  71.   /*                                                                       */
  72.   typedef struct T1_CharMapRec_*   T1_CharMap;
  73.  
  74.  
  75.   /*************************************************************************/
  76.   /*                                                                       */
  77.   /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */
  78.   /*                                                                       */
  79.   /*************************************************************************/
  80.  
  81.  
  82.   /*************************************************************************/
  83.   /*                                                                       */
  84.   /* <Type>                                                                */
  85.   /*    T1_SizeRec                                                         */
  86.   /*                                                                       */
  87.   /* <Description>                                                         */
  88.   /*    Type 1 size record.                                                */
  89.   /*                                                                       */
  90.   typedef struct  T1_SizeRec_
  91.   {
  92.     FT_SizeRec  root;
  93.  
  94.   } T1_SizeRec;
  95.  
  96.  
  97.   FT_LOCAL( void )
  98.   T1_Size_Done( FT_Size  size );
  99.  
  100.   FT_LOCAL( FT_Error )
  101.   T1_Size_Request( FT_Size          size,
  102.                    FT_Size_Request  req );
  103.  
  104.   FT_LOCAL( FT_Error )
  105.   T1_Size_Init( FT_Size  size );
  106.  
  107.  
  108.   /*************************************************************************/
  109.   /*                                                                       */
  110.   /* <Type>                                                                */
  111.   /*    T1_GlyphSlotRec                                                    */
  112.   /*                                                                       */
  113.   /* <Description>                                                         */
  114.   /*    Type 1 glyph slot record.                                          */
  115.   /*                                                                       */
  116.   typedef struct  T1_GlyphSlotRec_
  117.   {
  118.     FT_GlyphSlotRec  root;
  119.  
  120.     FT_Bool          hint;
  121.     FT_Bool          scaled;
  122.  
  123.     FT_Int           max_points;
  124.     FT_Int           max_contours;
  125.  
  126.     FT_Fixed         x_scale;
  127.     FT_Fixed         y_scale;
  128.  
  129.   } T1_GlyphSlotRec;
  130.  
  131.  
  132.   FT_LOCAL( FT_Error )
  133.   T1_Face_Init( FT_Stream      stream,
  134.                 FT_Face        face,
  135.                 FT_Int         face_index,
  136.                 FT_Int         num_params,
  137.                 FT_Parameter*  params );
  138.  
  139.   FT_LOCAL( void )
  140.   T1_Face_Done( FT_Face  face );
  141.  
  142.   FT_LOCAL( FT_Error )
  143.   T1_GlyphSlot_Init( FT_GlyphSlot  slot );
  144.  
  145.   FT_LOCAL( void )
  146.   T1_GlyphSlot_Done( FT_GlyphSlot  slot );
  147.  
  148.   FT_LOCAL( FT_Error )
  149.   T1_Driver_Init( FT_Module  driver );
  150.  
  151.   FT_LOCAL( void )
  152.   T1_Driver_Done( FT_Module  driver );
  153.  
  154.  
  155. FT_END_HEADER
  156.  
  157. #endif /* __T1OBJS_H__ */
  158.  
  159.  
  160. /* END */
  161.