(root)/
freetype-2.13.2/
src/
type1/
t1objs.h
       1  /****************************************************************************
       2   *
       3   * t1objs.h
       4   *
       5   *   Type 1 objects manager (specification).
       6   *
       7   * Copyright (C) 1996-2023 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 <freetype/internal/ftobjs.h>
      25  #include FT_CONFIG_CONFIG_H
      26  #include <freetype/internal/t1types.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_Fixed         x_scale;
     124      FT_Fixed         y_scale;
     125  
     126      FT_Int           max_points;
     127      FT_Int           max_contours;
     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 */