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

Side by Side Diff: src/truetype/ttdriver.c

Issue 89753003: Update freetype to latest version of ASOP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src/third_party/freetype.git@master
Patch Set: Created 7 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
« no previous file with comments | « src/truetype/truetype.c ('k') | src/truetype/ttgload.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /***************************************************************************/ 1 /***************************************************************************/
2 /* */ 2 /* */
3 /* ttdriver.c */ 3 /* ttdriver.c */
4 /* */ 4 /* */
5 /* TrueType font driver implementation (body). */ 5 /* TrueType font driver implementation (body). */
6 /* */ 6 /* */
7 /* Copyright 1996-2012 by */ 7 /* Copyright 1996-2013 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */ 9 /* */
10 /* This file is part of the FreeType project, and may only be used, */ 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 */ 11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */ 13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */ 14 /* understand and accept it fully. */
15 /* */ 15 /* */
16 /***************************************************************************/ 16 /***************************************************************************/
17 17
18 18
19 #include <ft2build.h> 19 #include <ft2build.h>
20 #include FT_INTERNAL_DEBUG_H 20 #include FT_INTERNAL_DEBUG_H
21 #include FT_INTERNAL_STREAM_H 21 #include FT_INTERNAL_STREAM_H
22 #include FT_INTERNAL_SFNT_H 22 #include FT_INTERNAL_SFNT_H
23 #include FT_SERVICE_XFREE86_NAME_H 23 #include FT_SERVICE_XFREE86_NAME_H
24 24
25 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT 25 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
26 #include FT_MULTIPLE_MASTERS_H 26 #include FT_MULTIPLE_MASTERS_H
27 #include FT_SERVICE_MULTIPLE_MASTERS_H 27 #include FT_SERVICE_MULTIPLE_MASTERS_H
28 #endif 28 #endif
29 29
30 #include FT_SERVICE_TRUETYPE_ENGINE_H 30 #include FT_SERVICE_TRUETYPE_ENGINE_H
31 #include FT_SERVICE_TRUETYPE_GLYF_H 31 #include FT_SERVICE_TRUETYPE_GLYF_H
32 #include FT_SERVICE_PROPERTIES_H
33 #include FT_TRUETYPE_DRIVER_H
32 34
33 #include "ttdriver.h" 35 #include "ttdriver.h"
34 #include "ttgload.h" 36 #include "ttgload.h"
35 #include "ttpload.h" 37 #include "ttpload.h"
36 38
37 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT 39 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
38 #include "ttgxvar.h" 40 #include "ttgxvar.h"
39 #endif 41 #endif
40 42
41 #include "tterrors.h" 43 #include "tterrors.h"
42 44
43 #include "ttpic.h" 45 #include "ttpic.h"
44 46
45 /*************************************************************************/ 47 /*************************************************************************/
46 /* */ 48 /* */
47 /* The macro FT_COMPONENT is used in trace mode. It is an implicit */ 49 /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
48 /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */ 50 /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
49 /* messages during execution. */ 51 /* messages during execution. */
50 /* */ 52 /* */
51 #undef FT_COMPONENT 53 #undef FT_COMPONENT
52 #define FT_COMPONENT trace_ttdriver 54 #define FT_COMPONENT trace_ttdriver
53 55
54 56
57 /*
58 * PROPERTY SERVICE
59 *
60 */
61 static FT_Error
62 tt_property_set( FT_Module module, /* TT_Driver */
63 const char* property_name,
64 const void* value )
65 {
66 FT_Error error = FT_Err_Ok;
67 TT_Driver driver = (TT_Driver)module;
68
69
70 if ( !ft_strcmp( property_name, "interpreter-version" ) )
71 {
72 FT_UInt* interpreter_version = (FT_UInt*)value;
73
74
75 #ifndef TT_CONFIG_OPTION_SUBPIXEL_HINTING
76 if ( *interpreter_version != TT_INTERPRETER_VERSION_35 )
77 error = FT_ERR( Unimplemented_Feature );
78 else
79 #endif
80 driver->interpreter_version = *interpreter_version;
81
82 return error;
83 }
84
85 FT_TRACE0(( "tt_property_set: missing property `%s'\n",
86 property_name ));
87 return FT_THROW( Missing_Property );
88 }
89
90
91 static FT_Error
92 tt_property_get( FT_Module module, /* TT_Driver */
93 const char* property_name,
94 const void* value )
95 {
96 FT_Error error = FT_Err_Ok;
97 TT_Driver driver = (TT_Driver)module;
98
99 FT_UInt interpreter_version = driver->interpreter_version;
100
101
102 if ( !ft_strcmp( property_name, "interpreter-version" ) )
103 {
104 FT_UInt* val = (FT_UInt*)value;
105
106
107 *val = interpreter_version;
108
109 return error;
110 }
111
112 FT_TRACE0(( "tt_property_get: missing property `%s'\n",
113 property_name ));
114 return FT_THROW( Missing_Property );
115 }
116
117
118 FT_DEFINE_SERVICE_PROPERTIESREC(
119 tt_service_properties,
120 (FT_Properties_SetFunc)tt_property_set,
121 (FT_Properties_GetFunc)tt_property_get )
122
123
55 /*************************************************************************/ 124 /*************************************************************************/
56 /*************************************************************************/ 125 /*************************************************************************/
57 /*************************************************************************/ 126 /*************************************************************************/
58 /**** ****/ 127 /**** ****/
59 /**** ****/ 128 /**** ****/
60 /**** F A C E S ****/ 129 /**** F A C E S ****/
61 /**** ****/ 130 /**** ****/
62 /**** ****/ 131 /**** ****/
63 /*************************************************************************/ 132 /*************************************************************************/
64 /*************************************************************************/ 133 /*************************************************************************/
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 { 225 {
157 FT_Short lsb; 226 FT_Short lsb;
158 FT_UShort aw; 227 FT_UShort aw;
159 228
160 229
161 TT_Get_HMetrics( face, start + nn, &lsb, &aw ); 230 TT_Get_HMetrics( face, start + nn, &lsb, &aw );
162 advances[nn] = aw; 231 advances[nn] = aw;
163 } 232 }
164 } 233 }
165 234
166 return TT_Err_Ok; 235 return FT_Err_Ok;
167 } 236 }
168 237
169 /*************************************************************************/ 238 /*************************************************************************/
170 /*************************************************************************/ 239 /*************************************************************************/
171 /*************************************************************************/ 240 /*************************************************************************/
172 /**** ****/ 241 /**** ****/
173 /**** ****/ 242 /**** ****/
174 /**** S I Z E S ****/ 243 /**** S I Z E S ****/
175 /**** ****/ 244 /**** ****/
176 /**** ****/ 245 /**** ****/
177 /*************************************************************************/ 246 /*************************************************************************/
178 /*************************************************************************/ 247 /*************************************************************************/
179 /*************************************************************************/ 248 /*************************************************************************/
180 249
181 250
182 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 251 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
183 252
184 static FT_Error 253 static FT_Error
185 tt_size_select( FT_Size size, 254 tt_size_select( FT_Size size,
186 FT_ULong strike_index ) 255 FT_ULong strike_index )
187 { 256 {
188 TT_Face ttface = (TT_Face)size->face; 257 TT_Face ttface = (TT_Face)size->face;
189 TT_Size ttsize = (TT_Size)size; 258 TT_Size ttsize = (TT_Size)size;
190 FT_Error error = TT_Err_Ok; 259 FT_Error error = FT_Err_Ok;
191 260
192 261
193 ttsize->strike_index = strike_index; 262 ttsize->strike_index = strike_index;
194 263
195 if ( FT_IS_SCALABLE( size->face ) ) 264 if ( FT_IS_SCALABLE( size->face ) )
196 { 265 {
197 /* use the scaled metrics, even when tt_size_reset fails */ 266 /* use the scaled metrics, even when tt_size_reset fails */
198 FT_Select_Metrics( size->face, strike_index ); 267 FT_Select_Metrics( size->face, strike_index );
199 268
200 tt_size_reset( ttsize ); 269 tt_size_reset( ttsize );
(...skipping 13 matching lines...) Expand all
214 } 283 }
215 284
216 #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */ 285 #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
217 286
218 287
219 static FT_Error 288 static FT_Error
220 tt_size_request( FT_Size size, 289 tt_size_request( FT_Size size,
221 FT_Size_Request req ) 290 FT_Size_Request req )
222 { 291 {
223 TT_Size ttsize = (TT_Size)size; 292 TT_Size ttsize = (TT_Size)size;
224 FT_Error error = TT_Err_Ok; 293 FT_Error error = FT_Err_Ok;
225 294
226 295
227 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 296 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
228 297
229 if ( FT_HAS_FIXED_SIZES( size->face ) ) 298 if ( FT_HAS_FIXED_SIZES( size->face ) )
230 { 299 {
231 TT_Face ttface = (TT_Face)size->face; 300 TT_Face ttface = (TT_Face)size->face;
232 SFNT_Service sfnt = (SFNT_Service) ttface->sfnt; 301 SFNT_Service sfnt = (SFNT_Service) ttface->sfnt;
233 FT_ULong strike_index; 302 FT_ULong strike_index;
234 303
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 FT_UInt glyph_index, 356 FT_UInt glyph_index,
288 FT_Int32 load_flags ) 357 FT_Int32 load_flags )
289 { 358 {
290 TT_GlyphSlot slot = (TT_GlyphSlot)ttslot; 359 TT_GlyphSlot slot = (TT_GlyphSlot)ttslot;
291 TT_Size size = (TT_Size)ttsize; 360 TT_Size size = (TT_Size)ttsize;
292 FT_Face face = ttslot->face; 361 FT_Face face = ttslot->face;
293 FT_Error error; 362 FT_Error error;
294 363
295 364
296 if ( !slot ) 365 if ( !slot )
297 return TT_Err_Invalid_Slot_Handle; 366 return FT_THROW( Invalid_Slot_Handle );
298 367
299 if ( !size ) 368 if ( !size )
300 return TT_Err_Invalid_Size_Handle; 369 return FT_THROW( Invalid_Size_Handle );
301 370
302 if ( !face ) 371 if ( !face )
303 return TT_Err_Invalid_Argument; 372 return FT_THROW( Invalid_Argument );
304 373
305 #ifdef FT_CONFIG_OPTION_INCREMENTAL 374 #ifdef FT_CONFIG_OPTION_INCREMENTAL
306 if ( glyph_index >= (FT_UInt)face->num_glyphs && 375 if ( glyph_index >= (FT_UInt)face->num_glyphs &&
307 !face->internal->incremental_interface ) 376 !face->internal->incremental_interface )
308 #else 377 #else
309 if ( glyph_index >= (FT_UInt)face->num_glyphs ) 378 if ( glyph_index >= (FT_UInt)face->num_glyphs )
310 #endif 379 #endif
311 return TT_Err_Invalid_Argument; 380 return FT_THROW( Invalid_Argument );
312 381
313 if ( load_flags & FT_LOAD_NO_HINTING ) 382 if ( load_flags & FT_LOAD_NO_HINTING )
314 { 383 {
315 /* both FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT */ 384 /* both FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT */
316 /* are necessary to disable hinting for tricky fonts */ 385 /* are necessary to disable hinting for tricky fonts */
317 386
318 if ( FT_IS_TRICKY( face ) ) 387 if ( FT_IS_TRICKY( face ) )
319 load_flags &= ~FT_LOAD_NO_HINTING; 388 load_flags &= ~FT_LOAD_NO_HINTING;
320 389
321 if ( load_flags & FT_LOAD_NO_AUTOHINT ) 390 if ( load_flags & FT_LOAD_NO_AUTOHINT )
(...skipping 24 matching lines...) Expand all
346 /**** ****/ 415 /**** ****/
347 /**** ****/ 416 /**** ****/
348 /**** D R I V E R I N T E R F A C E ****/ 417 /**** D R I V E R I N T E R F A C E ****/
349 /**** ****/ 418 /**** ****/
350 /**** ****/ 419 /**** ****/
351 /*************************************************************************/ 420 /*************************************************************************/
352 /*************************************************************************/ 421 /*************************************************************************/
353 /*************************************************************************/ 422 /*************************************************************************/
354 423
355 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT 424 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
356 FT_DEFINE_SERVICE_MULTIMASTERSREC(tt_service_gx_multi_masters, 425 FT_DEFINE_SERVICE_MULTIMASTERSREC(
426 tt_service_gx_multi_masters,
357 (FT_Get_MM_Func) NULL, 427 (FT_Get_MM_Func) NULL,
358 (FT_Set_MM_Design_Func) NULL, 428 (FT_Set_MM_Design_Func) NULL,
359 (FT_Set_MM_Blend_Func) TT_Set_MM_Blend, 429 (FT_Set_MM_Blend_Func) TT_Set_MM_Blend,
360 (FT_Get_MM_Var_Func) TT_Get_MM_Var, 430 (FT_Get_MM_Var_Func) TT_Get_MM_Var,
361 (FT_Set_Var_Design_Func)TT_Set_Var_Design 431 (FT_Set_Var_Design_Func)TT_Set_Var_Design )
362 )
363 #endif 432 #endif
364 433
365 static const FT_Service_TrueTypeEngineRec tt_service_truetype_engine = 434 static const FT_Service_TrueTypeEngineRec tt_service_truetype_engine =
366 { 435 {
367 #ifdef TT_USE_BYTECODE_INTERPRETER 436 #ifdef TT_USE_BYTECODE_INTERPRETER
368 437
369 #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING 438 #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
370 FT_TRUETYPE_ENGINE_TYPE_UNPATENTED 439 FT_TRUETYPE_ENGINE_TYPE_UNPATENTED
371 #else 440 #else
372 FT_TRUETYPE_ENGINE_TYPE_PATENTED 441 FT_TRUETYPE_ENGINE_TYPE_PATENTED
373 #endif 442 #endif
374 443
375 #else /* !TT_USE_BYTECODE_INTERPRETER */ 444 #else /* !TT_USE_BYTECODE_INTERPRETER */
376 445
377 FT_TRUETYPE_ENGINE_TYPE_NONE 446 FT_TRUETYPE_ENGINE_TYPE_NONE
378 447
379 #endif /* TT_USE_BYTECODE_INTERPRETER */ 448 #endif /* TT_USE_BYTECODE_INTERPRETER */
380 }; 449 };
381 450
382 FT_DEFINE_SERVICE_TTGLYFREC(tt_service_truetype_glyf, 451 FT_DEFINE_SERVICE_TTGLYFREC(
383 (TT_Glyf_GetLocationFunc)tt_face_get_location 452 tt_service_truetype_glyf,
384 ) 453 (TT_Glyf_GetLocationFunc)tt_face_get_location )
385 454
386 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT 455 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
387 FT_DEFINE_SERVICEDESCREC4(tt_services, 456 FT_DEFINE_SERVICEDESCREC5(
457 tt_services,
388 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE, 458 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE,
389 FT_SERVICE_ID_MULTI_MASTERS, &FT_TT_SERVICE_GX_MULTI_MASTERS_GET, 459 FT_SERVICE_ID_MULTI_MASTERS, &TT_SERVICE_GX_MULTI_MASTERS_GET,
390 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, 460 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine,
391 FT_SERVICE_ID_TT_GLYF, &FT_TT_SERVICE_TRUETYPE_GLYF_GET 461 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET,
392 ) 462 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET )
393 #else 463 #else
394 FT_DEFINE_SERVICEDESCREC3(tt_services, 464 FT_DEFINE_SERVICEDESCREC4(
465 tt_services,
395 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE, 466 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE,
396 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, 467 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine,
397 FT_SERVICE_ID_TT_GLYF, &FT_TT_SERVICE_TRUETYPE_GLYF_GET 468 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET,
398 ) 469 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET )
399 #endif 470 #endif
400 471
472
401 FT_CALLBACK_DEF( FT_Module_Interface ) 473 FT_CALLBACK_DEF( FT_Module_Interface )
402 tt_get_interface( FT_Module driver, /* TT_Driver */ 474 tt_get_interface( FT_Module driver, /* TT_Driver */
403 const char* tt_interface ) 475 const char* tt_interface )
404 { 476 {
405 FT_Library library; 477 FT_Library library;
406 FT_Module_Interface result; 478 FT_Module_Interface result;
407 FT_Module sfntd; 479 FT_Module sfntd;
408 SFNT_Service sfnt; 480 SFNT_Service sfnt;
409 481
410 482
411 /* FT_TT_SERVICES_GET derefers `library' in PIC mode */ 483 /* TT_SERVICES_GET derefers `library' in PIC mode */
412 #ifdef FT_CONFIG_OPTION_PIC 484 #ifdef FT_CONFIG_OPTION_PIC
413 if ( !driver ) 485 if ( !driver )
414 return NULL; 486 return NULL;
415 library = driver->library; 487 library = driver->library;
416 if ( !library ) 488 if ( !library )
417 return NULL; 489 return NULL;
418 #endif 490 #endif
419 491
420 result = ft_service_list_lookup( FT_TT_SERVICES_GET, tt_interface ); 492 result = ft_service_list_lookup( TT_SERVICES_GET, tt_interface );
421 if ( result != NULL ) 493 if ( result != NULL )
422 return result; 494 return result;
423 495
424 #ifndef FT_CONFIG_OPTION_PIC 496 #ifndef FT_CONFIG_OPTION_PIC
425 if ( !driver ) 497 if ( !driver )
426 return NULL; 498 return NULL;
427 library = driver->library; 499 library = driver->library;
428 if ( !library ) 500 if ( !library )
429 return NULL; 501 return NULL;
430 #endif 502 #endif
431 503
432 /* only return the default interface from the SFNT module */ 504 /* only return the default interface from the SFNT module */
433 sfntd = FT_Get_Module( library, "sfnt" ); 505 sfntd = FT_Get_Module( library, "sfnt" );
434 if ( sfntd ) 506 if ( sfntd )
435 { 507 {
436 sfnt = (SFNT_Service)( sfntd->clazz->module_interface ); 508 sfnt = (SFNT_Service)( sfntd->clazz->module_interface );
437 if ( sfnt ) 509 if ( sfnt )
438 return sfnt->get_interface( driver, tt_interface ); 510 return sfnt->get_interface( driver, tt_interface );
439 } 511 }
440 512
441 return 0; 513 return 0;
442 } 514 }
443 515
444 516
445 /* The FT_DriverInterface structure is defined in ftdriver.h. */ 517 /* The FT_DriverInterface structure is defined in ftdriver.h. */
446 518
447 #ifdef TT_USE_BYTECODE_INTERPRETER 519 #ifdef TT_USE_BYTECODE_INTERPRETER
448 #define TT_HINTER_FLAG FT_MODULE_DRIVER_HAS_HINTER 520 #define TT_HINTER_FLAG FT_MODULE_DRIVER_HAS_HINTER
449 #else 521 #else
450 #define TT_HINTER_FLAG 0 522 #define TT_HINTER_FLAG 0
451 #endif 523 #endif
452 524
453 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS 525 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
454 #define TT_SIZE_SELECT tt_size_select 526 #define TT_SIZE_SELECT tt_size_select
455 #else 527 #else
456 #define TT_SIZE_SELECT 0 528 #define TT_SIZE_SELECT 0
457 #endif 529 #endif
458 530
459 FT_DEFINE_DRIVER( tt_driver_class, 531 FT_DEFINE_DRIVER(
532 tt_driver_class,
460 533
461 FT_MODULE_FONT_DRIVER | 534 FT_MODULE_FONT_DRIVER |
462 FT_MODULE_DRIVER_SCALABLE | 535 FT_MODULE_DRIVER_SCALABLE |
463 TT_HINTER_FLAG, 536 TT_HINTER_FLAG,
464 537
465 sizeof ( TT_DriverRec ), 538 sizeof ( TT_DriverRec ),
466 539
467 "truetype", /* driver name */ 540 "truetype", /* driver name */
468 0x10000L, /* driver version == 1.0 */ 541 0x10000L, /* driver version == 1.0 */
469 0x20000L, /* driver requires FreeType 2.0 or above */ 542 0x20000L, /* driver requires FreeType 2.0 or above */
470 543
471 (void*)0, /* driver specific interface */ 544 (void*)0, /* driver specific interface */
472 545
473 tt_driver_init, 546 tt_driver_init,
474 tt_driver_done, 547 tt_driver_done,
475 tt_get_interface, 548 tt_get_interface,
476 549
477 sizeof ( TT_FaceRec ), 550 sizeof ( TT_FaceRec ),
478 sizeof ( TT_SizeRec ), 551 sizeof ( TT_SizeRec ),
479 sizeof ( FT_GlyphSlotRec ), 552 sizeof ( FT_GlyphSlotRec ),
480 553
481 tt_face_init, 554 tt_face_init,
482 tt_face_done, 555 tt_face_done,
483 tt_size_init, 556 tt_size_init,
484 tt_size_done, 557 tt_size_done,
485 tt_slot_init, 558 tt_slot_init,
486 0, /* FT_Slot_DoneFunc */ 559 0, /* FT_Slot_DoneFunc */
487 560
488 ft_stub_set_char_sizes, /* FT_CONFIG_OPTION_OLD_INTERNALS */
489 ft_stub_set_pixel_sizes, /* FT_CONFIG_OPTION_OLD_INTERNALS */
490
491 tt_glyph_load, 561 tt_glyph_load,
492 562
493 tt_get_kerning, 563 tt_get_kerning,
494 0, /* FT_Face_AttachFunc */ 564 0, /* FT_Face_AttachFunc */
495 tt_get_advances, 565 tt_get_advances,
496 566
497 tt_size_request, 567 tt_size_request,
498 TT_SIZE_SELECT 568 TT_SIZE_SELECT
499 ) 569 )
500 570
501 571
502 /* END */ 572 /* END */
OLDNEW
« no previous file with comments | « src/truetype/truetype.c ('k') | src/truetype/ttgload.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698