Center of rotation depends on alignment.
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 18 Oct 2006 21:19:51 +0000 (21:19 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 18 Oct 2006 21:19:51 +0000 (21:19 +0000)
git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@20302 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_render.c

index 447d905..364bb1e 100644 (file)
@@ -1866,13 +1866,15 @@ static int ass_render_event(ass_event_t* event, event_images_t* event_images)
                        center.y = render_context.org_y;
                } else {
                        FT_BBox str_bbox;
+                       int bx, by;
 
                        center.x = text_info.glyphs[0].pos.x + device_x;
                        center.y = text_info.glyphs[0].pos.y + device_y;
 
                        compute_string_bbox(&text_info, &str_bbox);
-                       center.x += (str_bbox.xMax - str_bbox.xMin) / 2;
-                       center.y += (str_bbox.yMax - str_bbox.yMin) / 2;
+                       get_base_point(str_bbox, alignment, &bx, &by);
+                       center.x += bx - str_bbox.xMin;
+                       center.y += by - str_bbox.yMin;
                }
 
                for (i = 0; i < text_info.length; ++i) {