diff options
author | Khaled Hosny <khaled@aliftype.com> | 2022-11-19 20:55:50 +0200 |
---|---|---|
committer | خالد حسني <khaled@aliftype.com> | 2022-11-20 19:45:38 +0100 |
commit | f88e7632b745a9b18af36cd901399c40e8b7378f (patch) | |
tree | 1e4c20202bba4d2bdbaf81a92f781fe0eebc9caf /vcl/unx/generic | |
parent | e535da3b6d72c0aca312dcf1ca38a3fcc3532a38 (diff) |
vcl: unify skew for artificial italic
Cairo, Skia, Core Text, and PDF all were using slightly different skew
for artificial italic.
On Windows, we don’t even apply the skew ourselves and let DirectWrite
apply it.
The value chosen here should be the same as the one applied by
DirectWrite for consistency (measured manually, and confirmed against:
https://source.winehq.org/git/wine.git/blob/5d1820c40bd93e6810f072a39745ee739ba99b81:/dlls/dwrite/freetype.c#l467)
Change-Id: I3ab017b4cd7a3b4dba097cd302333a88e4c16350
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142980
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@aliftype.com>
Diffstat (limited to 'vcl/unx/generic')
-rw-r--r-- | vcl/unx/generic/gdi/cairotextrender.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/generic/glyphs/freetype_glyphcache.cxx | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 6f462b4e3377..81d3b532c12a 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -344,7 +344,7 @@ void CairoTextRender::DrawTextLayout(const GenericSalLayout& rLayout, const SalG { cairo_matrix_t shear; cairo_matrix_init_identity(&shear); - shear.xy = -shear.xx * 0x6000L / 0x10000L; + shear.xy = -shear.xx * ARTIFICIAL_ITALIC_SKEW; cairo_matrix_multiply(&m, &shear, &m); } diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx index 4cc30ea3c21a..d4a50b0f0167 100644 --- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx +++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx @@ -858,8 +858,8 @@ bool FreetypeFont::GetGlyphOutline(sal_GlyphId nId, basegfx::B2DPolyPolygon& rB2 if( mbArtItalic ) { FT_Matrix aMatrix; - aMatrix.xx = aMatrix.yy = 0x10000L; - aMatrix.xy = 0x6000L; + aMatrix.xx = aMatrix.yy = ARTIFICIAL_ITALIC_MATRIX_XX; + aMatrix.xy = ARTIFICIAL_ITALIC_MATRIX_XY; aMatrix.yx = 0; FT_Glyph_Transform( pGlyphFT, &aMatrix, nullptr ); } |