From a75f6a8d3d3ed6410cc2a4efa866a99152d78af6 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Sun, 28 Jun 2009 02:36:31 +0200 Subject: 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. --- libass/ass_render.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libass/ass_render.c') diff --git a/libass/ass_render.c b/libass/ass_render.c index a9de0af5..2abb9d7f 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); } -- cgit v1.2.3