diff options
author | robertphillips <robertphillips@google.com> | 2016-02-25 11:03:52 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-25 11:03:52 -0800 |
commit | b56f92783a5d84347b65f4f01ec3668096649d13 (patch) | |
tree | 825d7eb1b7450bb8bc72cc033d50efd4a44058d6 /src/gpu/GrDrawContext.cpp | |
parent | e4499849df904c30c21e0eacaf11b9e9a985313f (diff) |
Hide GrPipelineBuilder from GrOvalRenderer
Limiting the reach of GrPipelineBuilder is always good.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1726223008
Review URL: https://codereview.chromium.org/1726223008
Diffstat (limited to 'src/gpu/GrDrawContext.cpp')
-rw-r--r-- | src/gpu/GrDrawContext.cpp | 79 |
1 files changed, 39 insertions, 40 deletions
diff --git a/src/gpu/GrDrawContext.cpp b/src/gpu/GrDrawContext.cpp index 03ccd4a326..b5c28190f2 100644 --- a/src/gpu/GrDrawContext.cpp +++ b/src/gpu/GrDrawContext.cpp @@ -494,23 +494,25 @@ void GrDrawContext::drawRRect(const GrClip& clip, GrPipelineBuilder pipelineBuilder(paint, fRenderTarget, clip); GrColor color = paint.getColor(); - GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps(); - SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateRRectBatch(pipelineBuilder, - color, - viewMatrix, - paint.isAntiAlias(), - rrect, - strokeInfo, - shaderCaps)); - if (batch) { - this->getDrawTarget()->drawBatch(pipelineBuilder, batch); - } else { - SkPath path; - path.setIsVolatile(true); - path.addRRect(rrect); - this->internalDrawPath(&pipelineBuilder, viewMatrix, color, - paint.isAntiAlias(), path, strokeInfo); + if (should_apply_coverage_aa(paint, fRenderTarget)) { + GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps(); + + SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateRRectBatch(color, + viewMatrix, + rrect, + strokeInfo, + shaderCaps)); + if (batch) { + this->getDrawTarget()->drawBatch(pipelineBuilder, batch); + return; + } } + + SkPath path; + path.setIsVolatile(true); + path.addRRect(rrect); + this->internalDrawPath(&pipelineBuilder, viewMatrix, color, + paint.isAntiAlias(), path, strokeInfo); } /////////////////////////////////////////////////////////////////////////////// @@ -535,24 +537,25 @@ void GrDrawContext::drawOval(const GrClip& clip, GrPipelineBuilder pipelineBuilder(paint, fRenderTarget, clip); GrColor color = paint.getColor(); - - GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps(); - SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateOvalBatch(pipelineBuilder, - color, - viewMatrix, - paint.isAntiAlias(), - oval, - strokeInfo, - shaderCaps)); - if (batch) { - this->getDrawTarget()->drawBatch(pipelineBuilder, batch); - } else { - SkPath path; - path.setIsVolatile(true); - path.addOval(oval); - this->internalDrawPath(&pipelineBuilder, viewMatrix, color, - paint.isAntiAlias(), path, strokeInfo); + + if (should_apply_coverage_aa(paint, fRenderTarget)) { + GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps(); + SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateOvalBatch(color, + viewMatrix, + oval, + strokeInfo, + shaderCaps)); + if (batch) { + this->getDrawTarget()->drawBatch(pipelineBuilder, batch); + return; + } } + + SkPath path; + path.setIsVolatile(true); + path.addOval(oval); + this->internalDrawPath(&pipelineBuilder, viewMatrix, color, + paint.isAntiAlias(), path, strokeInfo); } void GrDrawContext::drawImageNine(const GrClip& clip, @@ -680,10 +683,8 @@ void GrDrawContext::drawPath(const GrClip& clip, AutoCheckFlush acf(fDrawingManager); GrPipelineBuilder pipelineBuilder(paint, fRenderTarget, clip); - if (!strokeInfo.isDashed()) { - bool useCoverageAA = should_apply_coverage_aa(paint, pipelineBuilder.getRenderTarget()); - - if (useCoverageAA && strokeInfo.getWidth() < 0 && !path.isConvex()) { + if (should_apply_coverage_aa(paint, fRenderTarget) && !strokeInfo.isDashed()) { + if (strokeInfo.getWidth() < 0 && !path.isConvex()) { // Concave AA paths are expensive - try to avoid them for special cases SkRect rects[2]; @@ -699,10 +700,8 @@ void GrDrawContext::drawPath(const GrClip& clip, if (isOval && !path.isInverseFillType()) { GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps(); - SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateOvalBatch(pipelineBuilder, - color, + SkAutoTUnref<GrDrawBatch> batch(GrOvalRenderer::CreateOvalBatch(color, viewMatrix, - paint.isAntiAlias(), ovalRect, strokeInfo, shaderCaps)); |