Index: gm/fontmgr.cpp |
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp |
index 99cff6e4d38a0c95cab7fc7d22132edd2c514083..865090a4c44fbac05233b7b55dabbc57000ff843 100644 |
--- a/gm/fontmgr.cpp |
+++ b/gm/fontmgr.cpp |
@@ -15,13 +15,6 @@ |
#include "SkTypeface_win.h" |
#endif |
-static void scale(SkRect* rect, SkScalar scale) { |
- rect->fLeft *= scale; |
- rect->fTop *= scale; |
- rect->fRight *= scale; |
- rect->fBottom *= scale; |
-} |
- |
// limit this just so we don't take too long to draw |
#define MAX_FAMILIES 30 |
@@ -233,8 +226,14 @@ private: |
class FontMgrBoundsGM : public skiagm::GM { |
public: |
- FontMgrBoundsGM() { |
+ FontMgrBoundsGM(double scale, double skew) |
+ : fScaleX(SkDoubleToScalar(scale)) |
+ , fSkewX(SkDoubleToScalar(skew)) |
+ { |
fName.set("fontmgr_bounds"); |
+ if (scale != 1 || skew != 0) { |
+ fName.appendf("_%g_%g", scale, skew); |
+ } |
fFM.reset(SkFontMgr::RefDefault()); |
} |
@@ -242,13 +241,11 @@ public: |
SkColor boundsColor) { |
const char str[] = "jyHO[]{}@-_&%$"; |
- const SkTypeface* tf = paint.getTypeface(); |
for (int i = 0; str[i]; ++i) { |
canvas->drawText(&str[i], 1, x, y, paint); |
} |
- SkRect r = tf->getBounds(); |
- scale(&r, paint.getTextSize()); |
+ SkRect r = paint.getFontBounds(); |
r.offset(x, y); |
SkPaint p(paint); |
p.setColor(boundsColor); |
@@ -270,6 +267,8 @@ protected: |
paint.setSubpixelText(true); |
paint.setTextSize(100); |
paint.setStyle(SkPaint::kStroke_Style); |
+ paint.setTextScaleX(fScaleX); |
+ paint.setTextSkewX(fSkewX); |
const SkColor boundsColors[2] = { SK_ColorRED, SK_ColorBLUE }; |
@@ -314,14 +313,17 @@ protected: |
private: |
SkAutoTUnref<SkFontMgr> fFM; |
SkString fName; |
+ SkScalar fScaleX, fSkewX; |
typedef GM INHERITED; |
}; |
////////////////////////////////////////////////////////////////////////////// |
DEF_GM( return SkNEW(FontMgrGM); ) |
-DEF_GM( return SkNEW(FontMgrBoundsGM); ) |
DEF_GM( return SkNEW(FontMgrMatchGM); ) |
+DEF_GM( return SkNEW(FontMgrBoundsGM(1.0, 0)); ) |
+DEF_GM( return SkNEW(FontMgrBoundsGM(0.75, 0)); ) |
+DEF_GM( return SkNEW(FontMgrBoundsGM(1.0, -0.25)); ) |
#ifdef SK_BUILD_FOR_WIN |
DEF_GM( return SkNEW_ARGS(FontMgrGM, (SkFontMgr_New_DirectWrite())); ) |