Implement font glyph rotation

Huw D M Davies h.davies1 at physics.ox.ac.uk
Sat Feb 8 11:51:40 CST 2003


On Thu, Feb 06, 2003 at 09:50:57AM -0500, Warren_Baird at cimmetry.com wrote:
> 
> 
> 
> ChangeLog:
> 
>      Add support for font glyph rotation in GetGlyphOutline.
> 
> Description:
> 
>      Fixed bad angle conversion from tenths of degree to FT_Fixed on
>      big-endian machines.
> 
>      Fixed bad calculation of the gmCellIncY bounding box field
>      in the case of a rotation. (just imagine what you would get
>      as result from "-(vec.y+63) >> 6" when vec.y is zero... what
>      we expect really is zero, not -1).
> 
>      Fixed wrong rotation matrix used to transform the outline.
> 
>      Rotate each point of the outline before it gets converted
>      by FTVectorToPOINTFX in the GGO_NATIVE case.
> 
> Warren Baird : Warren_Baird at cimmetry.com
> Dave Belanger
> 
> diff -ur clean/wine/dlls/gdi/freetype.c wine/dlls/gdi/freetype.c
> --- clean/wine/dlls/gdi/freetype.c 24 Jan 2003 15:12:16 -0000     1.1.1.3
> +++ wine/dlls/gdi/freetype.c  28 Jan 2003 18:37:34 -0000

> @@ -1510,7 +1510,7 @@
>          if(font->orientation) {
>              FT_Matrix matrix;
>           matrix.xx = matrix.yy = pFT_Cos(angle);
> -         matrix.xy = -pFT_Sin(angle);
> +         matrix.xy = pFT_Sin(angle);
>           matrix.yx = -matrix.xy;
> 
>           pFT_Outline_Transform(&ft_face->glyph->outline, &matrix);

Hi,

Are you sure about this hunk?  Iirc there was a vesion of FreeType
that incorrectly swapped the meaning of matrix.xy and matrix.yx, but
as I understand it this has now been corrected.  Which version of
FreeType have you been using?  We could probably add a run time check
to work around this bug if need be.

Huw.



More information about the wine-devel mailing list