diff options
| author | Po Lu | 2023-12-08 10:55:02 +0800 |
|---|---|---|
| committer | Po Lu | 2023-12-08 10:55:02 +0800 |
| commit | 3cf7d32b90ad32321c141bb2a34a670d2d6df5b7 (patch) | |
| tree | 8be5621d78ba05d593a81e79e74f129ae60fbc47 /src | |
| parent | 3b1fd42732f7ca5b2db6ad6e75af1c037e1c54e4 (diff) | |
| download | emacs-3cf7d32b90ad32321c141bb2a34a670d2d6df5b7.tar.gz emacs-3cf7d32b90ad32321c141bb2a34a670d2d6df5b7.zip | |
Display glyphs whose first contours commence at origin
* src/sfnt.c (sfnt_build_append): Don't disregard redundant
motion if outline is empty. Problem encountered in the "M"
glyph within Source Code Pro VF Italic.
Diffstat (limited to 'src')
| -rw-r--r-- | src/sfnt.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sfnt.c b/src/sfnt.c index 8ec19290859..34239973797 100644 --- a/src/sfnt.c +++ b/src/sfnt.c | |||
| @@ -3487,12 +3487,18 @@ sfnt_build_append (int flags, sfnt_fixed x, sfnt_fixed y) | |||
| 3487 | { | 3487 | { |
| 3488 | struct sfnt_glyph_outline *outline; | 3488 | struct sfnt_glyph_outline *outline; |
| 3489 | 3489 | ||
| 3490 | outline = build_outline_context.outline; | ||
| 3491 | |||
| 3490 | if (x == build_outline_context.x | 3492 | if (x == build_outline_context.x |
| 3491 | && y == build_outline_context.y) | 3493 | && y == build_outline_context.y |
| 3494 | /* If the outline is presently empty, the first move_to must be | ||
| 3495 | recorded even if its X and Y are set to origin. Without this | ||
| 3496 | initial vertex, edges will be generated from the next vertex | ||
| 3497 | onward, and thus be misaligned. */ | ||
| 3498 | && outline->outline_used) | ||
| 3492 | /* Ignore redundant motion. */ | 3499 | /* Ignore redundant motion. */ |
| 3493 | return build_outline_context.outline; | 3500 | return build_outline_context.outline; |
| 3494 | 3501 | ||
| 3495 | outline = build_outline_context.outline; | ||
| 3496 | outline->outline_used++; | 3502 | outline->outline_used++; |
| 3497 | 3503 | ||
| 3498 | /* See if the outline has to be extended. Checking for overflow | 3504 | /* See if the outline has to be extended. Checking for overflow |