1 | /**************************************************************************** |
2 | * |
3 | * cffload.h |
4 | * |
5 | * OpenType & CFF data/program tables 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 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( FT_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( FT_Face face ); |
116 | #endif |
117 | |
118 | |
119 | FT_END_HEADER |
120 | |
121 | #endif /* CFFLOAD_H_ */ |
122 | |
123 | |
124 | /* END */ |
125 | |