diff options
author | Grigori Goronzy <greg@blackbox> | 2009-06-28 02:36:31 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2009-06-28 02:36:31 +0200 |
commit | a75f6a8d3d3ed6410cc2a4efa866a99152d78af6 (patch) | |
tree | d5f0ae407aed864c64f9dc2cda6762cc9170f230 /libass | |
parent | 07bcf7f7cee44d208e07ae13d890d61a94c2d260 (diff) | |
download | libass-a75f6a8d3d3ed6410cc2a4efa866a99152d78af6.tar.bz2 libass-a75f6a8d3d3ed6410cc2a4efa866a99152d78af6.tar.xz |
Fix subpixel shift calculation for negative coordinates
The subpixel shift calculation was off in case the device coordinates
were negative. This has been corrected and the calculation been
simplified.
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_render.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index a9de0af..2abb9d7 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -2654,11 +2654,11 @@ ass_render_event(ass_renderer_t *render_priv, ass_event_t *event, for (i = 0; i < text_info->length; ++i) { glyph_info_t *g = text_info->glyphs + i; g->hash_key.advance.x = - (double_to_d6(device_x) & SUBPIXEL_MASK) + - (g->pos.x & SUBPIXEL_MASK); + double_to_d6(device_x - (int) device_x + + d6_to_double(g->pos.x & SUBPIXEL_MASK)); g->hash_key.advance.y = - (double_to_d6(device_y) & SUBPIXEL_MASK) + - (g->pos.y & SUBPIXEL_MASK); + double_to_d6(device_y - (int) device_y + + d6_to_double(g->pos.y & SUBPIXEL_MASK)); get_bitmap_glyph(render_priv, text_info->glyphs + i); } |