Mercurial > mplayer.hg
changeset 23322:bc9ec60e174d
Revert y-axis rotation. Change order of rotations.
Now rotations are performed in the following order: X, Y, Z. Before this, it
was the other way around. Also, in FreeType Y axis is directed upwards, so the
corresponding rotation must be reverted.
author | eugeni |
---|---|
date | Fri, 18 May 2007 18:58:34 +0000 |
parents | ab8f2f9afd51 |
children | e30b3f6bab3f |
files | libass/ass_render.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libass/ass_render.c Fri May 18 02:10:41 2007 +0000 +++ b/libass/ass_render.c Fri May 18 18:58:34 2007 +0000 @@ -1670,6 +1670,7 @@ */ static void transform_3d(FT_Vector shift, FT_Glyph* glyph, FT_Glyph* glyph2, double frx, double fry, double frz) { + fry = - fry; // FreeType's y axis goes in the opposite direction if (frx != 0. || fry != 0. || frz != 0.) { double m[16]; double sx = sin(frx); @@ -1678,10 +1679,10 @@ double cx = cos(frx); double cy = cos(fry); double cz = cos(frz); - m[0] = cy * cz; m[1] = cz*sx*sy + sz*cx; m[2] = sz*sx - cz*cx*sy; m[3] = 0.0; - m[4] = -sz*cy; m[5] = cz*cx - sz*sy*sx; m[6] = sz*sy*cx + cz*sx; m[7] = 0.0; - m[8] = sy; m[9] = -sx*cy; m[10] = cx*cy; m[11] = 0.0; - m[12] = 0.0; m[13] = 0.0; m[14] = 0.0; m[15] = 1.0; + m[0] = cy * cz; m[1] = cy*sz; m[2] = -sy; m[3] = 0.0; + m[4] = -cx*sz + sx*sy*cz; m[5] = cx*cz + sx*sy*sz; m[6] = sx*cy; m[7] = 0.0; + m[8] = sx*sz + cx*sy*cz; m[9] = -sx*cz + cx*sy*sz; m[10] = cx*cy; m[11] = 0.0; + m[12] = 0.0; m[13] = 0.0; m[14] = 0.0; m[15] = 1.0; if (glyph && *glyph) transform_glyph_3d(*glyph, m, shift);