* @param length Number of bytes of text to measure
* @param bounds If not NULL, returns the bounds of the text,
* relative to (0, 0).
- * @param scale If not 0, return width as if the canvas were scaled
- * by this value
* @return The advance width of the text
*/
- SkScalar measureText(const void* text, size_t length,
- SkRect* bounds, SkScalar scale = 0) const;
+ SkScalar measureText(const void* text, size_t length, SkRect* bounds) const;
/** Return the width of the text. This will return the vertical measure
* if isVerticalText() is true, in which case the returned value should
* @return The advance width of the text
*/
SkScalar measureText(const void* text, size_t length) const {
- return this->measureText(text, length, NULL, 0);
+ return this->measureText(text, length, NULL);
}
/** Specify the direction the text buffer should be processed in breakText()
// exercise scale/linear/devkern
struct Setting {
- SkScalar fScale;
bool fLinearText;
bool fDevKernText;
};
-static const SkScalar ONE = SkIntToScalar(9999)/10000;
-
static const Setting gSettings[] = {
- { 0, false, false },
- { 0, false, true },
- { 0, true, false },
- { 0, true, true },
- { ONE, false, false },
- { ONE, false, true },
- { ONE, true, false },
- { ONE, true, true }
+ { false, false },
+ { false, true },
+ { true, false },
+ { true, true },
};
static void doMeasure(SkCanvas* canvas, const SkPaint& paint, const char text[]) {
for (size_t i = 0; i < SK_ARRAY_COUNT(gSettings); i++) {
p.setLinearText(gSettings[i].fLinearText);
p.setDevKernText(gSettings[i].fDevKernText);
- SkScalar scale = gSettings[i].fScale;
int n = p.getTextWidths(text, len, widths, rects);
- SkScalar w = p.measureText(text, len, &bounds, scale);
+ SkScalar w = p.measureText(text, len, &bounds);
p.setStyle(SkPaint::kFill_Style);
p.setColor(0x8888FF88);
return Sk48Dot16ToScalar(x);
}
-SkScalar SkPaint::measureText(const void* textData, size_t length,
- SkRect* bounds, SkScalar zoom) const {
+SkScalar SkPaint::measureText(const void* textData, size_t length, SkRect* bounds) const {
const char* text = (const char*)textData;
SkASSERT(text != NULL || length == 0);
const SkPaint& paint = canon.getPaint();
SkScalar scale = canon.getScale();
- SkMatrix zoomMatrix, *zoomPtr = NULL;
- if (zoom) {
- zoomMatrix.setScale(zoom, zoom);
- zoomPtr = &zoomMatrix;
- }
-
- SkAutoGlyphCache autoCache(paint, NULL, zoomPtr);
+ SkAutoGlyphCache autoCache(paint, NULL, NULL);
SkGlyphCache* cache = autoCache.getCache();
SkScalar width = 0;
r.setLTRB(SK_ScalarNaN, SK_ScalarNaN, SK_ScalarNaN, SK_ScalarNaN);
// test that the rect was reset
- paint.measureText("", 0, &r, 1.0f);
+ paint.measureText("", 0, &r);
REPORTER_ASSERT(reporter, r.isEmpty());
}