diff options
author | 2014-12-23 07:58:02 -0800 | |
---|---|---|
committer | 2014-12-23 07:58:02 -0800 | |
commit | 73483d9fbec9cfd1fd79e2cb8c255a22898d3743 (patch) | |
tree | 503409a4f7455179b35aa354c0e174db6583b4fa /src/gpu | |
parent | f11ba2b4c6ce06714d7ed3702e758c831e760635 (diff) |
fix for valgrind
BUG=skia:
Review URL: https://codereview.chromium.org/816103003
Diffstat (limited to 'src/gpu')
-rwxr-xr-x | src/gpu/GrBitmapTextContext.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/gpu/GrBitmapTextContext.cpp b/src/gpu/GrBitmapTextContext.cpp index 790590dbcc..94b2770b23 100755 --- a/src/gpu/GrBitmapTextContext.cpp +++ b/src/gpu/GrBitmapTextContext.cpp @@ -154,9 +154,10 @@ void GrBitmapTextContext::onDrawText(const GrPaint& paint, const SkPaint& skPain SkFixed fx = SkScalarToFixed(x) + halfSampleX; SkFixed fy = SkScalarToFixed(y) + halfSampleY; - // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix - if (kARGB_GrMaskFormat != fCurrMaskFormat && !viewMatrix.invert(&fLocalMatrix)) { - SkDebugf("Cannot invert viewmatrix\n"); + // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix, but for + // performance reasons we just invert here instead + if (!viewMatrix.invert(&fLocalMatrix)) { + SkDebugf("Cannot invert viewmatrix\n"); } while (text < stop) { @@ -201,11 +202,9 @@ void GrBitmapTextContext::onDrawPosText(const GrPaint& paint, const SkPaint& skP SkGlyphCache* cache = autoCache.getCache(); GrFontScaler* fontScaler = GetGrFontScaler(cache); - // store original matrix before we reset, so we can use it to transform positions - SkMatrix ctm = viewMatrix; - - // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix - if (kARGB_GrMaskFormat != fCurrMaskFormat && !viewMatrix.invert(&fLocalMatrix)) { + // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix, but for + // performance reasons we just invert here instead + if (!viewMatrix.invert(&fLocalMatrix)) { SkDebugf("Cannot invert viewmatrix\n"); } @@ -214,12 +213,12 @@ void GrBitmapTextContext::onDrawPosText(const GrPaint& paint, const SkPaint& skP const char* stop = text + byteLength; SkTextAlignProc alignProc(fSkPaint.getTextAlign()); - SkTextMapStateProc tmsProc(ctm, offset, scalarsPerPosition); + SkTextMapStateProc tmsProc(viewMatrix, offset, scalarsPerPosition); SkFixed halfSampleX = 0, halfSampleY = 0; if (cache->isSubpixel()) { // maybe we should skip the rounding if linearText is set - SkAxisAlignment baseline = SkComputeAxisAlignmentForHText(ctm); + SkAxisAlignment baseline = SkComputeAxisAlignmentForHText(viewMatrix); SkFixed fxMask = ~0; SkFixed fyMask = ~0; |