diff options
Diffstat (limited to 'libass/ass_drawing.c')
-rw-r--r-- | libass/ass_drawing.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c index 03eb568..32a3803 100644 --- a/libass/ass_drawing.c +++ b/libass/ass_drawing.c @@ -86,7 +86,7 @@ static void drawing_prepare(ASS_Drawing *drawing) */ static void drawing_finish(ASS_Drawing *drawing, int raw_mode) { - int i, offset; + int i; double pbo; FT_BBox bbox = drawing->cbox; FT_Outline *ol = &drawing->outline; @@ -104,15 +104,13 @@ static void drawing_finish(ASS_Drawing *drawing, int raw_mode) drawing->advance.x = bbox.xMax - bbox.xMin; - pbo = drawing->pbo / (64.0 / (1 << (drawing->scale - 1))); - drawing->desc = double_to_d6(-pbo * drawing->scale_y); - drawing->asc = bbox.yMax - bbox.yMin + drawing->desc; + pbo = drawing->pbo / (1 << (drawing->scale - 1)); + drawing->desc = double_to_d6(pbo * drawing->scale_y); + drawing->asc = bbox.yMax - bbox.yMin - drawing->desc; // Place it onto the baseline - offset = (bbox.yMax - bbox.yMin) + double_to_d6(-pbo * - drawing->scale_y); for (i = 0; i < ol->n_points; i++) - ol->points[i].y += offset; + ol->points[i].y += drawing->asc; } /* |