(root)/
freetype-2.13.2/
src/
type1/
t1load.h
       1  /****************************************************************************
       2   *
       3   * t1load.h
       4   *
       5   *   Type 1 font loader (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 T1LOAD_H_
      20  #define T1LOAD_H_
      21  
      22  
      23  #include <freetype/internal/ftstream.h>
      24  #include <freetype/internal/psaux.h>
      25  #include <freetype/ftmm.h>
      26  
      27  #include "t1parse.h"
      28  
      29  
      30  FT_BEGIN_HEADER
      31  
      32  
      33    typedef struct  T1_Loader_
      34    {
      35      T1_ParserRec  parser;          /* parser used to read the stream */
      36  
      37      FT_Int        num_chars;       /* number of characters in encoding */
      38      PS_TableRec   encoding_table;  /* PS_Table used to store the       */
      39                                     /* encoding character names         */
      40  
      41      FT_Int        num_glyphs;
      42      PS_TableRec   glyph_names;
      43      PS_TableRec   charstrings;
      44      PS_TableRec   swap_table;      /* For moving .notdef glyph to index 0. */
      45  
      46      FT_Int        num_subrs;
      47      PS_TableRec   subrs;
      48      FT_Hash       subrs_hash;
      49      FT_Bool       fontdata;
      50  
      51      FT_UInt       keywords_encountered; /* T1_LOADER_ENCOUNTERED_XXX */
      52  
      53    } T1_LoaderRec, *T1_Loader;
      54  
      55  
      56    /* treatment of some keywords differs depending on whether */
      57    /* they precede or follow certain other keywords           */
      58  
      59  #define T1_PRIVATE                ( 1 << 0 )
      60  #define T1_FONTDIR_AFTER_PRIVATE  ( 1 << 1 )
      61  
      62  
      63    FT_LOCAL( FT_Error )
      64    T1_Open_Face( T1_Face  face );
      65  
      66  #ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
      67  
      68    FT_LOCAL( FT_Error )
      69    T1_Get_Multi_Master( FT_Face           face,
      70                         FT_Multi_Master*  master );
      71  
      72    FT_LOCAL( FT_Error )
      73    T1_Get_MM_Var( FT_Face      face,
      74                   FT_MM_Var*  *master );
      75  
      76    FT_LOCAL( FT_Error )
      77    T1_Set_MM_Blend( FT_Face    face,
      78                     FT_UInt    num_coords,
      79                     FT_Fixed*  coords );
      80  
      81    FT_LOCAL( FT_Error )
      82    T1_Get_MM_Blend( FT_Face    face,
      83                     FT_UInt    num_coords,
      84                     FT_Fixed*  coords );
      85  
      86    FT_LOCAL( FT_Error )
      87    T1_Set_MM_Design( FT_Face   face,
      88                      FT_UInt   num_coords,
      89                      FT_Long*  coords );
      90  
      91    FT_LOCAL( FT_Error )
      92    T1_Reset_MM_Blend( FT_Face  face,
      93                       FT_UInt  instance_index );
      94  
      95    FT_LOCAL( FT_Error )
      96    T1_Get_Var_Design( FT_Face    face,
      97                       FT_UInt    num_coords,
      98                       FT_Fixed*  coords );
      99  
     100    FT_LOCAL( FT_Error )
     101    T1_Set_Var_Design( FT_Face    face,
     102                       FT_UInt    num_coords,
     103                       FT_Fixed*  coords );
     104  
     105    FT_LOCAL( void )
     106    T1_Done_Blend( FT_Face  face );
     107  
     108    FT_LOCAL( FT_Error )
     109    T1_Set_MM_WeightVector( FT_Face    face,
     110                            FT_UInt    len,
     111                            FT_Fixed*  weightvector );
     112  
     113    FT_LOCAL( FT_Error )
     114    T1_Get_MM_WeightVector( FT_Face    face,
     115                            FT_UInt*   len,
     116                            FT_Fixed*  weightvector );
     117  
     118  #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */
     119  
     120  
     121  FT_END_HEADER
     122  
     123  #endif /* T1LOAD_H_ */
     124  
     125  
     126  /* END */