summaryrefslogtreecommitdiffstats
path: root/libass/ass_drawing.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_drawing.c')
-rw-r--r--libass/ass_drawing.c12
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;
}
/*