| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrMSAAPathRenderer.h" | 8 #include "GrMSAAPathRenderer.h" |
| 9 | 9 |
| 10 #include "GrBatchFlushState.h" | 10 #include "GrBatchFlushState.h" |
| (...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 int fMaxQuadVertices; | 561 int fMaxQuadVertices; |
| 562 int fMaxLineIndices; | 562 int fMaxLineIndices; |
| 563 int fMaxQuadIndices; | 563 int fMaxQuadIndices; |
| 564 bool fIsIndexed; | 564 bool fIsIndexed; |
| 565 | 565 |
| 566 typedef GrVertexBatch INHERITED; | 566 typedef GrVertexBatch INHERITED; |
| 567 }; | 567 }; |
| 568 | 568 |
| 569 bool GrMSAAPathRenderer::internalDrawPath(GrDrawTarget* target, | 569 bool GrMSAAPathRenderer::internalDrawPath(GrDrawTarget* target, |
| 570 GrPipelineBuilder* pipelineBuilder, | 570 GrPipelineBuilder* pipelineBuilder, |
| 571 const GrClip& clip, |
| 571 GrColor color, | 572 GrColor color, |
| 572 const SkMatrix& viewMatrix, | 573 const SkMatrix& viewMatrix, |
| 573 const SkPath& path, | 574 const SkPath& path, |
| 574 bool stencilOnly) { | 575 bool stencilOnly) { |
| 575 | 576 |
| 576 const GrXPFactory* xpFactory = pipelineBuilder->getXPFactory(); | 577 const GrXPFactory* xpFactory = pipelineBuilder->getXPFactory(); |
| 577 SkAutoTUnref<const GrXPFactory> backupXPFactory(SkSafeRef(xpFactory)); | 578 SkAutoTUnref<const GrXPFactory> backupXPFactory(SkSafeRef(xpFactory)); |
| 578 // face culling doesn't make sense here | 579 // face culling doesn't make sense here |
| 579 SkASSERT(GrPipelineBuilder::kBoth_DrawFace == pipelineBuilder->getDrawFace()
); | 580 SkASSERT(GrPipelineBuilder::kBoth_DrawFace == pipelineBuilder->getDrawFace()
); |
| 580 | 581 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 669 } | 670 } |
| 670 } | 671 } |
| 671 } else { | 672 } else { |
| 672 bounds = path.getBounds(); | 673 bounds = path.getBounds(); |
| 673 } | 674 } |
| 674 const SkMatrix& viewM = (reverse && viewMatrix.hasPerspective()) ? S
kMatrix::I() : | 675 const SkMatrix& viewM = (reverse && viewMatrix.hasPerspective()) ? S
kMatrix::I() : |
| 675 v
iewMatrix; | 676 v
iewMatrix; |
| 676 SkAutoTUnref<GrDrawBatch> batch( | 677 SkAutoTUnref<GrDrawBatch> batch( |
| 677 GrRectBatchFactory::CreateNonAAFill(color, viewM, bounds, nu
llptr, | 678 GrRectBatchFactory::CreateNonAAFill(color, viewM, bounds, nu
llptr, |
| 678 &localMatrix)); | 679 &localMatrix)); |
| 679 target->drawBatch(*pipelineBuilder, batch); | 680 target->drawBatch(*pipelineBuilder, clip, batch); |
| 680 } else { | 681 } else { |
| 681 if (passCount > 1) { | 682 if (passCount > 1) { |
| 682 pipelineBuilder->setDisableColorXPFactory(); | 683 pipelineBuilder->setDisableColorXPFactory(); |
| 683 } | 684 } |
| 684 | 685 |
| 685 MSAAPathBatch::Geometry geometry; | 686 MSAAPathBatch::Geometry geometry; |
| 686 geometry.fColor = color; | 687 geometry.fColor = color; |
| 687 geometry.fPath = path; | 688 geometry.fPath = path; |
| 688 geometry.fTolerance = kTolerance; | 689 geometry.fTolerance = kTolerance; |
| 689 | 690 |
| 690 SkAutoTUnref<MSAAPathBatch> batch(MSAAPathBatch::Create(geometry, vi
ewMatrix, | 691 SkAutoTUnref<MSAAPathBatch> batch(MSAAPathBatch::Create(geometry, vi
ewMatrix, |
| 691 devBounds)); | 692 devBounds)); |
| 692 if (batch->isValid()) { | 693 if (batch->isValid()) { |
| 693 target->drawBatch(*pipelineBuilder, batch); | 694 target->drawBatch(*pipelineBuilder, clip, batch); |
| 694 } | 695 } |
| 695 else { | 696 else { |
| 696 return false; | 697 return false; |
| 697 } | 698 } |
| 698 } | 699 } |
| 699 } | 700 } |
| 700 return true; | 701 return true; |
| 701 } | 702 } |
| 702 | 703 |
| 703 bool GrMSAAPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { | 704 bool GrMSAAPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 721 } | 722 } |
| 722 // We don't accept styles that are hairlines or have path effects that c
ould produce | 723 // We don't accept styles that are hairlines or have path effects that c
ould produce |
| 723 // hairlines. | 724 // hairlines. |
| 724 SkASSERT(SkStrokeRec::kFill_InitStyle == fill); | 725 SkASSERT(SkStrokeRec::kFill_InitStyle == fill); |
| 725 path = &tmpPath; | 726 path = &tmpPath; |
| 726 } else { | 727 } else { |
| 727 path = args.fPath; | 728 path = args.fPath; |
| 728 } | 729 } |
| 729 return this->internalDrawPath(args.fTarget, | 730 return this->internalDrawPath(args.fTarget, |
| 730 args.fPipelineBuilder, | 731 args.fPipelineBuilder, |
| 732 *args.fClip, |
| 731 args.fColor, | 733 args.fColor, |
| 732 *args.fViewMatrix, | 734 *args.fViewMatrix, |
| 733 *path, | 735 *path, |
| 734 false); | 736 false); |
| 735 } | 737 } |
| 736 | 738 |
| 737 void GrMSAAPathRenderer::onStencilPath(const StencilPathArgs& args) { | 739 void GrMSAAPathRenderer::onStencilPath(const StencilPathArgs& args) { |
| 738 GR_AUDIT_TRAIL_AUTO_FRAME(args.fTarget->getAuditTrail(),"GrMSAAPathRenderer:
:onStencilPath"); | 740 GR_AUDIT_TRAIL_AUTO_FRAME(args.fTarget->getAuditTrail(),"GrMSAAPathRenderer:
:onStencilPath"); |
| 739 SkASSERT(SkPath::kInverseEvenOdd_FillType != args.fPath->getFillType()); | 741 SkASSERT(SkPath::kInverseEvenOdd_FillType != args.fPath->getFillType()); |
| 740 SkASSERT(SkPath::kInverseWinding_FillType != args.fPath->getFillType()); | 742 SkASSERT(SkPath::kInverseWinding_FillType != args.fPath->getFillType()); |
| 741 this->internalDrawPath(args.fTarget, args.fPipelineBuilder, GrColor_WHITE, *
args.fViewMatrix, | 743 this->internalDrawPath(args.fTarget, args.fPipelineBuilder, *args.fClip, GrC
olor_WHITE, |
| 742 *args.fPath, true); | 744 *args.fViewMatrix, *args.fPath, true); |
| 743 } | 745 } |
| 744 | 746 |
| 745 ////////////////////////////////////////////////////////////////////////////////
/////////////////// | 747 ////////////////////////////////////////////////////////////////////////////////
/////////////////// |
| OLD | NEW |