1 /****************************************************************************
   2  *
   3  * cffload.h
   4  *
   5  *   OpenType & CFF data/program tables loader (specification).
   6  *
   7  * Copyright (C) 1996-2020 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 CFFLOAD_H_
  20 #define CFFLOAD_H_
  21 
  22 
  23 #include <ft2build.h>
  24 #include FT_INTERNAL_CFF_TYPES_H
  25 #include "cffparse.h"
  26 #include FT_INTERNAL_CFF_OBJECTS_TYPES_H  /* for CFF_Face */
  27 
  28 
  29 FT_BEGIN_HEADER
  30 
  31   FT_LOCAL( FT_UShort )
  32   cff_get_standard_encoding( FT_UInt  charcode );
  33 
  34 
  35   FT_LOCAL( FT_String* )
  36   cff_index_get_string( CFF_Font  font,
  37                         FT_UInt   element );
  38 
  39   FT_LOCAL( FT_String* )
  40   cff_index_get_sid_string( CFF_Font  font,
  41                             FT_UInt   sid );
  42 
  43 
  44   FT_LOCAL( FT_Error )
  45   cff_index_access_element( CFF_Index  idx,
  46                             FT_UInt    element,
  47                             FT_Byte**  pbytes,
  48                             FT_ULong*  pbyte_len );
  49 
  50   FT_LOCAL( void )
  51   cff_index_forget_element( CFF_Index  idx,
  52                             FT_Byte**  pbytes );
  53 
  54   FT_LOCAL( FT_String* )
  55   cff_index_get_name( CFF_Font  font,
  56                       FT_UInt   element );
  57 
  58 
  59   FT_LOCAL( FT_UInt )
  60   cff_charset_cid_to_gindex( CFF_Charset  charset,
  61                              FT_UInt      cid );
  62 
  63 
  64   FT_LOCAL( FT_Error )
  65   cff_font_load( FT_Library  library,
  66                  FT_Stream   stream,
  67                  FT_Int      face_index,
  68                  CFF_Font    font,
  69                  CFF_Face    face,
  70                  FT_Bool     pure_cff,
  71                  FT_Bool     cff2 );
  72 
  73   FT_LOCAL( void )
  74   cff_font_done( CFF_Font  font );
  75 
  76 
  77   FT_LOCAL( FT_Error )
  78   cff_load_private_dict( CFF_Font     font,
  79                          CFF_SubFont  subfont,
  80                          FT_UInt      lenNDV,
  81                          FT_Fixed*    NDV );
  82 
  83   FT_LOCAL( FT_Byte )
  84   cff_fd_select_get( CFF_FDSelect  fdselect,
  85                      FT_UInt       glyph_index );
  86 
  87   FT_LOCAL( FT_Bool )
  88   cff_blend_check_vector( CFF_Blend  blend,
  89                           FT_UInt    vsindex,
  90                           FT_UInt    lenNDV,
  91                           FT_Fixed*  NDV );
  92 
  93   FT_LOCAL( FT_Error )
  94   cff_blend_build_vector( CFF_Blend  blend,
  95                           FT_UInt    vsindex,
  96                           FT_UInt    lenNDV,
  97                           FT_Fixed*  NDV );
  98 
  99   FT_LOCAL( void )
 100   cff_blend_clear( CFF_SubFont  subFont );
 101 
 102   FT_LOCAL( FT_Error )
 103   cff_blend_doBlend( CFF_SubFont  subfont,
 104                      CFF_Parser   parser,
 105                      FT_UInt      numBlends );
 106 
 107 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
 108   FT_LOCAL( FT_Error )
 109   cff_get_var_blend( CFF_Face     face,
 110                      FT_UInt     *num_coords,
 111                      FT_Fixed*   *coords,
 112                      FT_Fixed*   *normalizedcoords,
 113                      FT_MM_Var*  *mm_var );
 114 
 115   FT_LOCAL( void )
 116   cff_done_blend( CFF_Face  face );
 117 #endif
 118 
 119 
 120 FT_END_HEADER
 121 
 122 #endif /* CFFLOAD_H_ */
 123 
 124 
 125 /* END */