diff options
author | 2015-08-01 07:33:41 -0700 | |
---|---|---|
committer | 2015-08-01 07:33:42 -0700 | |
commit | 44c4851c91ac1779dfa5336defe05c251971cd45 (patch) | |
tree | a5a8a88bc1705b12fee69fce2e0674877aa73f56 /src | |
parent | c2e682795218268845d097dd41a92e72084c43f0 (diff) |
adding gm to use random scaler context
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/853336c532504b3436d7dcbf252419f00c79066d
Review URL: https://codereview.chromium.org/1268853008
Diffstat (limited to 'src')
-rw-r--r-- | src/fonts/SkRandomScalerContext.cpp | 51 |
1 files changed, 1 insertions, 50 deletions
diff --git a/src/fonts/SkRandomScalerContext.cpp b/src/fonts/SkRandomScalerContext.cpp index 34392d6ed3..0693682faa 100644 --- a/src/fonts/SkRandomScalerContext.cpp +++ b/src/fonts/SkRandomScalerContext.cpp @@ -28,7 +28,6 @@ protected: private: SkRandomTypeface* fFace; SkScalerContext* fProxy; - SkMatrix fMatrix; bool fFakeIt; }; @@ -41,28 +40,7 @@ SkRandomScalerContext::SkRandomScalerContext(SkRandomTypeface* face, const SkDes : SkScalerContext(face, desc) , fFace(face) , fFakeIt(fakeIt) { - size_t descSize = SkDescriptor::ComputeOverhead(1) + sizeof(SkScalerContext::Rec); - SkAutoDescriptor ad(descSize); - SkDescriptor* newDesc = ad.getDesc(); - - newDesc->init(); - void* entry = newDesc->addEntry(kRec_SkDescriptorTag, - sizeof(SkScalerContext::Rec), &fRec); - { - SkScalerContext::Rec* rec = (SkScalerContext::Rec*)entry; - rec->fTextSize = STD_SIZE; - rec->fPreScaleX = SK_Scalar1; - rec->fPreSkewX = 0; - rec->fPost2x2[0][0] = rec->fPost2x2[1][1] = SK_Scalar1; - rec->fPost2x2[1][0] = rec->fPost2x2[0][1] = 0; - } - SkASSERT(descSize == newDesc->getLength()); - newDesc->computeChecksum(); - - fProxy = face->proxy()->createScalerContext(newDesc); - - fRec.getSingleMatrix(&fMatrix); - fMatrix.preScale(SK_Scalar1 / STD_SIZE, SK_Scalar1 / STD_SIZE); + fProxy = face->proxy()->createScalerContext(desc); } SkRandomScalerContext::~SkRandomScalerContext() { @@ -79,12 +57,6 @@ uint16_t SkRandomScalerContext::generateCharToGlyph(SkUnichar uni) { void SkRandomScalerContext::generateAdvance(SkGlyph* glyph) { fProxy->getAdvance(glyph); - - SkVector advance; - fMatrix.mapXY(SkFixedToScalar(glyph->fAdvanceX), - SkFixedToScalar(glyph->fAdvanceY), &advance); - glyph->fAdvanceX = SkScalarToFixed(advance.fX); - glyph->fAdvanceY = SkScalarToFixed(advance.fY); } void SkRandomScalerContext::generateMetrics(SkGlyph* glyph) { @@ -110,15 +82,8 @@ void SkRandomScalerContext::generateMetrics(SkGlyph* glyph) { return; } if (SkMask::kARGB32_Format == format) { - SkVector advance; - fMatrix.mapXY(SkFixedToScalar(glyph->fAdvanceX), - SkFixedToScalar(glyph->fAdvanceY), &advance); - glyph->fAdvanceX = SkScalarToFixed(advance.fX); - glyph->fAdvanceY = SkScalarToFixed(advance.fY); - SkPath path; fProxy->getPath(*glyph, &path); - path.transform(fMatrix); SkRect storage; const SkPaint& paint = fFace->paint(); @@ -195,7 +160,6 @@ void SkRandomScalerContext::generateImage(const SkGlyph& glyph) { SkCanvas canvas(bm); canvas.translate(-SkIntToScalar(glyph.fLeft), -SkIntToScalar(glyph.fTop)); - canvas.concat(fMatrix); canvas.drawPath(path, fFace->paint()); } else { fProxy->forceGenerateImageFromPath(); @@ -209,23 +173,10 @@ void SkRandomScalerContext::generateImage(const SkGlyph& glyph) { void SkRandomScalerContext::generatePath(const SkGlyph& glyph, SkPath* path) { fProxy->getPath(glyph, path); - path->transform(fMatrix); } void SkRandomScalerContext::generateFontMetrics(SkPaint::FontMetrics* metrics) { fProxy->getFontMetrics(metrics); - if (metrics) { - SkScalar scale = fMatrix.getScaleY(); - metrics->fTop = SkScalarMul(metrics->fTop, scale); - metrics->fAscent = SkScalarMul(metrics->fAscent, scale); - metrics->fDescent = SkScalarMul(metrics->fDescent, scale); - metrics->fBottom = SkScalarMul(metrics->fBottom, scale); - metrics->fLeading = SkScalarMul(metrics->fLeading, scale); - metrics->fAvgCharWidth = SkScalarMul(metrics->fAvgCharWidth, scale); - metrics->fXMin = SkScalarMul(metrics->fXMin, scale); - metrics->fXMax = SkScalarMul(metrics->fXMax, scale); - metrics->fXHeight = SkScalarMul(metrics->fXHeight, scale); - } } /////////////////////////////////////////////////////////////////////////////// |