diff options
author | bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-10 18:56:18 +0000 |
---|---|---|
committer | bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-10 18:56:18 +0000 |
commit | 091f51b794e62942db47ccef6fef143ad1590d12 (patch) | |
tree | 6ffab16a0d7f6d8736f32f23a32861ffa12ed9c0 /src | |
parent | 735edb058b419dd03cc6f8828f213c31cf11f07d (diff) |
DirectWrite generatePath must transform the path by the current matrix.
https://codereview.appspot.com/7061061/
This will require at least the shadertext2 gm for DirectWrite to be rebaselined.
git-svn-id: http://skia.googlecode.com/svn/trunk@7121 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/ports/SkFontHost_win_dw.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ports/SkFontHost_win_dw.cpp b/src/ports/SkFontHost_win_dw.cpp index 67ee5c4927..1f257eb3d1 100644 --- a/src/ports/SkFontHost_win_dw.cpp +++ b/src/ports/SkFontHost_win_dw.cpp @@ -769,9 +769,7 @@ void SkScalerContext_Windows::generateAdvance(SkGlyph* glyph) { SkVector vecs[1] = { { advanceX, 0 } }; SkMatrix mat; - mat.setAll(fRec.fPost2x2[0][0], fRec.fPost2x2[0][1], 0, - fRec.fPost2x2[1][0], fRec.fPost2x2[1][1], 0, - 0, 0, SkScalarToPersp(SK_Scalar1)); + fRec.getMatrixFrom2x2(&mat); mat.mapVectors(vecs, SK_ARRAY_COUNT(vecs)); glyph->fAdvanceX = SkScalarToFixed(vecs[0].fX); @@ -1037,6 +1035,10 @@ void SkScalerContext_Windows::generatePath(const SkGlyph& glyph, SkPath* path) { FALSE, //rtl geometryToPath.get()), "Could not create glyph outline."); + + SkMatrix mat; + fRec.getMatrixFrom2x2(&mat); + path->transform(mat); } void SkFontHost::Serialize(const SkTypeface* rawFace, SkWStream* stream) { |