Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Commit48be1ca
committed
Rework mapping of dvi glyph indices to freetype indices.
In89a7e19, an API for converting "dvi glyph indices" (as storedin a dvi file) to FreeType-compatible keys (either "indices intothe native charmap" or "glyph names") was introduced. It wasintended that end users (i.e., backends) would check the type of`text.glyph_name_or_index` ((A) int or (B) str) and load the glyphaccordingly ((A) `FT_Set_Charmap(native_cmap); FT_Load_Char(index);` or(B) `FT_Load_Glyph(FT_Get_Name_Index(name));`); however, with the futureintroduction of {xe,lua}tex support, this kind of type checking becomesinconvenient, because {xe,lua}tex's "dvi glyph indices", which aredirectly equal to FreeType glyph indices (i.e. they would be loaded with`FT_Load_Glyph(index);`), would normally also be converted to ints.This PR introduces a new API (`Text.index`) that performs this mapping(via the new `DviFont._index_dvi_to_freetype`), always mapping toFreeType glyph indices (i.e. one can always just call `FT_Load_Glyph`on the result). To do so, in case (A) it loads itself the nativecharmap (something the end user needed to do by themselves previously)and performs the cmap-to-index conversion (`FT_Get_Char_Index`)previously implicit in `FT_Load_Char`; in case (B) it performs itselfthe name-to-index conversion (`FT_Get_Name_Index`). When {xe,lua}texsupport is introduced in the future, `_index_dvi_to_freetype` willjust return the index as is.The old APIs are not deprecated yet, as other changes will occur for{xe,lua}tex support (e.g. font_effects will go away and be replaced by`.font.effects`, as {xe,lua}tex don't store that info in the pdftexmapentry), and grouping all API changes together seems nicer (to onlyrequire a single adaptation step by the API consumer).1 parentb7e7663 commit48be1ca
3 files changed
+45
-23
lines changedLines changed: 42 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
31 | 31 |
| |
32 | 32 |
| |
33 | 33 |
| |
34 |
| - | |
| 34 | + | |
35 | 35 |
| |
36 | 36 |
| |
37 | 37 |
| |
| |||
71 | 71 |
| |
72 | 72 |
| |
73 | 73 |
| |
74 |
| - | |
75 |
| - | |
| 74 | + | |
| 75 | + | |
76 | 76 |
| |
77 | 77 |
| |
78 | 78 |
| |
| |||
105 | 105 |
| |
106 | 106 |
| |
107 | 107 |
| |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
108 | 116 |
| |
109 | 117 |
| |
110 | 118 |
| |
| |||
579 | 587 |
| |
580 | 588 |
| |
581 | 589 |
| |
582 |
| - | |
| 590 | + | |
583 | 591 |
| |
584 | 592 |
| |
585 | 593 |
| |
| |||
588 | 596 |
| |
589 | 597 |
| |
590 | 598 |
| |
| 599 | + | |
591 | 600 |
| |
592 | 601 |
| |
593 | 602 |
| |
| |||
630 | 639 |
| |
631 | 640 |
| |
632 | 641 |
| |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
633 | 669 |
| |
634 | 670 |
| |
635 | 671 |
| |
| |||
1023 | 1059 |
| |
1024 | 1060 |
| |
1025 | 1061 |
| |
1026 |
| - | |
1027 |
| - | |
| 1062 | + | |
1028 | 1063 |
| |
1029 | 1064 |
| |
1030 | 1065 |
| |
| |||
1156 | 1191 |
| |
1157 | 1192 |
| |
1158 | 1193 |
| |
1159 |
| - | |
1160 |
| - | |
1161 |
| - | |
1162 |
| - | |
1163 |
| - | |
1164 |
| - | |
| 1194 | + | |
1165 | 1195 |
| |
1166 | 1196 |
| |
1167 | 1197 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
41 | 41 |
| |
42 | 42 |
| |
43 | 43 |
| |
| 44 | + | |
| 45 | + | |
44 | 46 |
| |
45 | 47 |
| |
46 | 48 |
| |
|
Lines changed: 1 addition & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
239 | 239 |
| |
240 | 240 |
| |
241 | 241 |
| |
242 |
| - | |
243 |
| - | |
244 |
| - | |
245 |
| - | |
246 |
| - | |
247 |
| - | |
248 |
| - | |
249 |
| - | |
250 |
| - | |
251 |
| - | |
252 |
| - | |
| 242 | + | |
253 | 243 |
| |
254 | 244 |
| |
255 | 245 |
| |
|
0 commit comments
Comments
(0)