Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: core/src/fxge/fx_freetype/fxft2.5.01/src/cid/cidriver.c

Issue 815103002: Update freetype to 2.5.4. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Adjust GYP and GN Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /***************************************************************************/
2 /* */
3 /* cidriver.c */
4 /* */
5 /* CID driver interface (body). */
6 /* */
7 /* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2013 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 #include "../../include/ft2build.h"
20 #include "cidriver.h"
21 #include "cidgload.h"
22 #include "../../include/freetype/internal/ftdebug.h"
23
24 #include "ciderrs.h"
25
26 #include "../../include/freetype/internal/services/svpostnm.h"
27 #include "../../include/freetype/internal/services/svxf86nm.h"
28 #include "../../include/freetype/internal/services/svpsinfo.h"
29 #include "../../include/freetype/internal/services/svcid.h"
30
31
32 /*************************************************************************/
33 /* */
34 /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
35 /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
36 /* messages during execution. */
37 /* */
38 #undef FT_COMPONENT
39 #define FT_COMPONENT trace_ciddriver
40
41
42 /*
43 * POSTSCRIPT NAME SERVICE
44 *
45 */
46
47 static const char*
48 cid_get_postscript_name( CID_Face face )
49 {
50 const char* result = face->cid.cid_font_name;
51
52
53 if ( result && result[0] == '/' )
54 result++;
55
56 return result;
57 }
58
59
60 static const FT_Service_PsFontNameRec cid_service_ps_name =
61 {
62 (FT_PsName_GetFunc) cid_get_postscript_name
63 };
64
65
66 /*
67 * POSTSCRIPT INFO SERVICE
68 *
69 */
70
71 static FT_Error
72 cid_ps_get_font_info( FT_Face face,
73 PS_FontInfoRec* afont_info )
74 {
75 *afont_info = ((CID_Face)face)->cid.font_info;
76
77 return FT_Err_Ok;
78 }
79
80 static FT_Error
81 cid_ps_get_font_extra( FT_Face face,
82 PS_FontExtraRec* afont_extra )
83 {
84 *afont_extra = ((CID_Face)face)->font_extra;
85
86 return FT_Err_Ok;
87 }
88
89 static const FT_Service_PsInfoRec cid_service_ps_info =
90 {
91 (PS_GetFontInfoFunc) cid_ps_get_font_info,
92 (PS_GetFontExtraFunc) cid_ps_get_font_extra,
93 (PS_HasGlyphNamesFunc) NULL, /* unsupported with CID fonts */
94 (PS_GetFontPrivateFunc)NULL, /* unsupported */
95 (PS_GetFontValueFunc) NULL /* not implemented */
96 };
97
98
99 /*
100 * CID INFO SERVICE
101 *
102 */
103 static FT_Error
104 cid_get_ros( CID_Face face,
105 const char* *registry,
106 const char* *ordering,
107 FT_Int *supplement )
108 {
109 CID_FaceInfo cid = &face->cid;
110
111
112 if ( registry )
113 *registry = cid->registry;
114
115 if ( ordering )
116 *ordering = cid->ordering;
117
118 if ( supplement )
119 *supplement = cid->supplement;
120
121 return FT_Err_Ok;
122 }
123
124
125 static FT_Error
126 cid_get_is_cid( CID_Face face,
127 FT_Bool *is_cid )
128 {
129 FT_Error error = FT_Err_Ok;
130 FT_UNUSED( face );
131
132
133 if ( is_cid )
134 *is_cid = 1; /* cid driver is only used for CID keyed fonts */
135
136 return error;
137 }
138
139
140 static FT_Error
141 cid_get_cid_from_glyph_index( CID_Face face,
142 FT_UInt glyph_index,
143 FT_UInt *cid )
144 {
145 FT_Error error = FT_Err_Ok;
146 FT_UNUSED( face );
147
148
149 if ( cid )
150 *cid = glyph_index; /* identity mapping */
151
152 return error;
153 }
154
155
156 static const FT_Service_CIDRec cid_service_cid_info =
157 {
158 (FT_CID_GetRegistryOrderingSupplementFunc)cid_get_ros,
159 (FT_CID_GetIsInternallyCIDKeyedFunc) cid_get_is_cid,
160 (FT_CID_GetCIDFromGlyphIndexFunc) cid_get_cid_from_glyph_index
161 };
162
163
164 /*
165 * SERVICE LIST
166 *
167 */
168
169 static const FT_ServiceDescRec cid_services[] =
170 {
171 { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_CID },
172 { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &cid_service_ps_name },
173 { FT_SERVICE_ID_POSTSCRIPT_INFO, &cid_service_ps_info },
174 { FT_SERVICE_ID_CID, &cid_service_cid_info },
175 { NULL, NULL }
176 };
177
178
179 FT_CALLBACK_DEF( FT_Module_Interface )
180 cid_get_interface( FT_Module module,
181 const char* cid_interface )
182 {
183 FT_UNUSED( module );
184
185 return ft_service_list_lookup( cid_services, cid_interface );
186 }
187
188
189
190 FT_CALLBACK_TABLE_DEF
191 const FT_Driver_ClassRec t1cid_driver_class =
192 {
193 /* first of all, the FT_Module_Class fields */
194 {
195 FT_MODULE_FONT_DRIVER |
196 FT_MODULE_DRIVER_SCALABLE |
197 FT_MODULE_DRIVER_HAS_HINTER,
198
199 sizeof ( FT_DriverRec ),
200 "t1cid", /* module name */
201 0x10000L, /* version 1.0 of driver */
202 0x20000L, /* requires FreeType 2.0 */
203
204 0,
205
206 cid_driver_init,
207 cid_driver_done,
208 cid_get_interface
209 },
210
211 /* then the other font drivers fields */
212 sizeof ( CID_FaceRec ),
213 sizeof ( CID_SizeRec ),
214 sizeof ( CID_GlyphSlotRec ),
215
216 cid_face_init,
217 cid_face_done,
218
219 cid_size_init,
220 cid_size_done,
221 cid_slot_init,
222 cid_slot_done,
223
224 cid_slot_load_glyph,
225
226 0, /* FT_Face_GetKerningFunc */
227 0, /* FT_Face_AttachFunc */
228
229 0, /* FT_Face_GetAdvancesFunc */
230
231 cid_size_request,
232 0 /* FT_Size_SelectFunc */
233 };
234
235
236 /* END */
OLDNEW
« no previous file with comments | « core/src/fxge/fx_freetype/fxft2.5.01/src/cid/cidriver.h ('k') | core/src/fxge/fx_freetype/fxft2.5.01/src/cid/cidtoken.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698