diff options
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index f8924802e6..47d67e17f5 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -625,7 +625,16 @@ void SkGpuDevice::drawPath(const SkPath& origSrcPath, } GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPath", fContext.get()); - + if (!prePathMatrix && !paint.getMaskFilter()) { + GrPaint grPaint; + if (!SkPaintToGrPaint(this->context(), fRenderTargetContext->colorSpaceInfo(), paint, + this->ctm(), &grPaint)) { + return; + } + fRenderTargetContext->drawPath(this->clip(), std::move(grPaint), GrAA(paint.isAntiAlias()), + this->ctm(), origSrcPath, GrStyle(paint)); + return; + } GrBlurUtils::drawPathWithMaskFilter(fContext.get(), fRenderTargetContext.get(), this->clip(), origSrcPath, paint, this->ctm(), prePathMatrix, this->devClipBounds(), pathIsMutable); |