diff options
author | wm4 <wm4@nowhere> | 2013-09-25 19:23:52 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-09-26 00:39:13 +0200 |
commit | 4f542f2b9d003125c3b04416074078c3d81c0d6c (patch) | |
tree | 0cb8817499bd558a08e1d21a514fa9e2c1afa7fb /libass/ass_shaper.c | |
parent | 9b48357234806a4fe29ec97eba6c998a26033b5d (diff) | |
download | libass-4f542f2b9d003125c3b04416074078c3d81c0d6c.tar.bz2 libass-4f542f2b9d003125c3b04416074078c3d81c0d6c.tar.xz |
Fix Hinting again
Commit 05eb520 missed some duplicated bits in ass_shaper.c.
<wm4> oh crap
<zgreg> oh crap indeed
Instead of duplicating the logic in ass_shaper.c, just change the
glyphs before they even get into processing. This way, all code
reading the font size etc. is affected. This essentially reverts
commit c207000c, because it's not needed anymore.
Diffstat (limited to 'libass/ass_shaper.c')
-rw-r--r-- | libass/ass_shaper.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/libass/ass_shaper.c b/libass/ass_shaper.c index 46b11fe..46e6edc 100644 --- a/libass/ass_shaper.c +++ b/libass/ass_shaper.c @@ -392,9 +392,7 @@ static hb_font_t *get_hb_font(ASS_Shaper *shaper, GlyphInfo *info) font->faces[info->face_index], NULL); } - // XXX: this is a rather crude hack - const double ft_size = 256.0; - ass_face_set_size(font->faces[info->face_index], ft_size); + ass_face_set_size(font->faces[info->face_index], info->font_size); update_hb_size(hb_fonts[info->face_index], font->faces[info->face_index]); // update hash key for cached metrics @@ -525,7 +523,6 @@ static void shape_harfbuzz(ASS_Shaper *shaper, GlyphInfo *glyphs, size_t len) hb_buffer_t *buf; hb_font_t *font; } runs[MAX_RUNS]; - const double ft_size = 256.0; for (i = 0; i < len && run < MAX_RUNS; i++, run++) { // get length and level of the current run @@ -581,10 +578,10 @@ static void shape_harfbuzz(ASS_Shaper *shaper, GlyphInfo *glyphs, size_t len) // set position and advance info->skip = 0; info->glyph_index = glyph_info[j].codepoint; - info->offset.x = pos[j].x_offset * info->scale_x * (info->font_size / ft_size); - info->offset.y = -pos[j].y_offset * info->scale_y * (info->font_size / ft_size); - info->advance.x = pos[j].x_advance * info->scale_x * (info->font_size / ft_size); - info->advance.y = -pos[j].y_advance * info->scale_y * (info->font_size / ft_size); + info->offset.x = pos[j].x_offset * info->scale_x; + info->offset.y = -pos[j].y_offset * info->scale_y; + info->advance.x = pos[j].x_advance * info->scale_x; + info->advance.y = -pos[j].y_advance * info->scale_y; // accumulate advance in the root glyph root->cluster_advance.x += info->advance.x; |