aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-10 18:56:18 +0000
committerGravatar bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-10 18:56:18 +0000
commit091f51b794e62942db47ccef6fef143ad1590d12 (patch)
tree6ffab16a0d7f6d8736f32f23a32861ffa12ed9c0 /src
parent735edb058b419dd03cc6f8828f213c31cf11f07d (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.cpp8
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) {