OLD | NEW |
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-2014 by */ | 7 /* Copyright 1996-2015 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_FONT_FORMAT_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 | 32 #include FT_SERVICE_PROPERTIES_H |
33 #include FT_TRUETYPE_DRIVER_H | 33 #include FT_TRUETYPE_DRIVER_H |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 /**** ****/ | 127 /**** ****/ |
128 /**** ****/ | 128 /**** ****/ |
129 /**** F A C E S ****/ | 129 /**** F A C E S ****/ |
130 /**** ****/ | 130 /**** ****/ |
131 /**** ****/ | 131 /**** ****/ |
132 /*************************************************************************/ | 132 /*************************************************************************/ |
133 /*************************************************************************/ | 133 /*************************************************************************/ |
134 /*************************************************************************/ | 134 /*************************************************************************/ |
135 | 135 |
136 | 136 |
137 #undef PAIR_TAG | |
138 #define PAIR_TAG( left, right ) ( ( (FT_ULong)left << 16 ) | \ | |
139 (FT_ULong)right ) | |
140 | |
141 | |
142 /*************************************************************************/ | 137 /*************************************************************************/ |
143 /* */ | 138 /* */ |
144 /* <Function> */ | 139 /* <Function> */ |
145 /* tt_get_kerning */ | 140 /* tt_get_kerning */ |
146 /* */ | 141 /* */ |
147 /* <Description> */ | 142 /* <Description> */ |
148 /* A driver method used to return the kerning vector between two */ | 143 /* A driver method used to return the kerning vector between two */ |
149 /* glyphs of the same face. */ | 144 /* glyphs of the same face. */ |
150 /* */ | 145 /* */ |
151 /* <Input> */ | 146 /* <Input> */ |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 kerning->x = 0; | 179 kerning->x = 0; |
185 kerning->y = 0; | 180 kerning->y = 0; |
186 | 181 |
187 if ( sfnt ) | 182 if ( sfnt ) |
188 kerning->x = sfnt->get_kerning( face, left_glyph, right_glyph ); | 183 kerning->x = sfnt->get_kerning( face, left_glyph, right_glyph ); |
189 | 184 |
190 return 0; | 185 return 0; |
191 } | 186 } |
192 | 187 |
193 | 188 |
194 #undef PAIR_TAG | |
195 | |
196 | |
197 static FT_Error | 189 static FT_Error |
198 tt_get_advances( FT_Face ttface, | 190 tt_get_advances( FT_Face ttface, |
199 FT_UInt start, | 191 FT_UInt start, |
200 FT_UInt count, | 192 FT_UInt count, |
201 FT_Int32 flags, | 193 FT_Int32 flags, |
202 FT_Fixed *advances ) | 194 FT_Fixed *advances ) |
203 { | 195 { |
204 FT_UInt nn; | 196 FT_UInt nn; |
205 TT_Face face = (TT_Face) ttface; | 197 TT_Face face = (TT_Face) ttface; |
206 | 198 |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 #endif /* TT_USE_BYTECODE_INTERPRETER */ | 441 #endif /* TT_USE_BYTECODE_INTERPRETER */ |
450 }; | 442 }; |
451 | 443 |
452 FT_DEFINE_SERVICE_TTGLYFREC( | 444 FT_DEFINE_SERVICE_TTGLYFREC( |
453 tt_service_truetype_glyf, | 445 tt_service_truetype_glyf, |
454 (TT_Glyf_GetLocationFunc)tt_face_get_location ) | 446 (TT_Glyf_GetLocationFunc)tt_face_get_location ) |
455 | 447 |
456 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT | 448 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT |
457 FT_DEFINE_SERVICEDESCREC5( | 449 FT_DEFINE_SERVICEDESCREC5( |
458 tt_services, | 450 tt_services, |
459 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE, | 451 FT_SERVICE_ID_FONT_FORMAT, FT_FONT_FORMAT_TRUETYPE, |
460 FT_SERVICE_ID_MULTI_MASTERS, &TT_SERVICE_GX_MULTI_MASTERS_GET, | 452 FT_SERVICE_ID_MULTI_MASTERS, &TT_SERVICE_GX_MULTI_MASTERS_GET, |
461 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, | 453 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, |
462 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET, | 454 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET, |
463 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET ) | 455 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET ) |
464 #else | 456 #else |
465 FT_DEFINE_SERVICEDESCREC4( | 457 FT_DEFINE_SERVICEDESCREC4( |
466 tt_services, | 458 tt_services, |
467 FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE, | 459 FT_SERVICE_ID_FONT_FORMAT, FT_FONT_FORMAT_TRUETYPE, |
468 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, | 460 FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine, |
469 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET, | 461 FT_SERVICE_ID_TT_GLYF, &TT_SERVICE_TRUETYPE_GLYF_GET, |
470 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET ) | 462 FT_SERVICE_ID_PROPERTIES, &TT_SERVICE_PROPERTIES_GET ) |
471 #endif | 463 #endif |
472 | 464 |
473 | 465 |
474 FT_CALLBACK_DEF( FT_Module_Interface ) | 466 FT_CALLBACK_DEF( FT_Module_Interface ) |
475 tt_get_interface( FT_Module driver, /* TT_Driver */ | 467 tt_get_interface( FT_Module driver, /* TT_Driver */ |
476 const char* tt_interface ) | 468 const char* tt_interface ) |
477 { | 469 { |
478 FT_Library library; | 470 FT_Library library; |
479 FT_Module_Interface result; | 471 FT_Module_Interface result; |
480 FT_Module sfntd; | 472 FT_Module sfntd; |
481 SFNT_Service sfnt; | 473 SFNT_Service sfnt; |
482 | 474 |
483 | 475 |
484 /* TT_SERVICES_GET derefers `library' in PIC mode */ | 476 /* TT_SERVICES_GET dereferences `library' in PIC mode */ |
485 #ifdef FT_CONFIG_OPTION_PIC | 477 #ifdef FT_CONFIG_OPTION_PIC |
486 if ( !driver ) | 478 if ( !driver ) |
487 return NULL; | 479 return NULL; |
488 library = driver->library; | 480 library = driver->library; |
489 if ( !library ) | 481 if ( !library ) |
490 return NULL; | 482 return NULL; |
491 #endif | 483 #endif |
492 | 484 |
493 result = ft_service_list_lookup( TT_SERVICES_GET, tt_interface ); | 485 result = ft_service_list_lookup( TT_SERVICES_GET, tt_interface ); |
494 if ( result != NULL ) | 486 if ( result != NULL ) |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 tt_get_kerning, | 556 tt_get_kerning, |
565 0, /* FT_Face_AttachFunc */ | 557 0, /* FT_Face_AttachFunc */ |
566 tt_get_advances, | 558 tt_get_advances, |
567 | 559 |
568 tt_size_request, | 560 tt_size_request, |
569 TT_SIZE_SELECT | 561 TT_SIZE_SELECT |
570 ) | 562 ) |
571 | 563 |
572 | 564 |
573 /* END */ | 565 /* END */ |
OLD | NEW |