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