Index: src/gpu/GrStencilAndCoverPathRenderer.cpp |
diff --git a/src/gpu/GrStencilAndCoverPathRenderer.cpp b/src/gpu/GrStencilAndCoverPathRenderer.cpp |
index d8470f3c8c328befcceafd1224cbcda3fc956bcf..2feea01e5b82d1f57b8e4c6d8cdc1d9a74dc6676 100644 |
--- a/src/gpu/GrStencilAndCoverPathRenderer.cpp |
+++ b/src/gpu/GrStencilAndCoverPathRenderer.cpp |
@@ -121,6 +121,7 @@ bool GrStencilAndCoverPathRenderer::onDrawPath(GrDrawTarget* target, |
SkAutoTUnref<GrPathProcessor> pp(GrPathProcessor::Create(GrColor_WHITE)); |
target->stencilPath(drawState, pp, p, convert_skpath_filltype(path.getFillType())); |
+ SkMatrix invert = SkMatrix::I(); |
GrDrawState::AutoViewMatrixRestore avmr; |
SkRect bounds = SkRect::MakeLTRB(0, 0, |
SkIntToScalar(drawState->getRenderTarget()->width()), |
@@ -134,9 +135,12 @@ bool GrStencilAndCoverPathRenderer::onDrawPath(GrDrawTarget* target, |
SkScalar bloat = drawState->getViewMatrix().getMaxScale() * SK_ScalarHalf; |
bounds.outset(bloat, bloat); |
} else { |
+ if (!drawState->getViewMatrix().invert(&invert)) { |
+ return false; |
+ } |
avmr.setIdentity(drawState); |
} |
- target->drawSimpleRect(drawState, color, bounds); |
+ target->drawRect(drawState, color, bounds, NULL, &invert); |
} else { |
GR_STATIC_CONST_SAME_STENCIL(kStencilPass, |
kZero_StencilOp, |