OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 "GrAARectRenderer.h" | 8 #include "GrAARectRenderer.h" |
9 #include "GrGpu.h" | 9 #include "GrGpu.h" |
10 #include "gl/GrGLEffect.h" | 10 #include "gl/GrGLEffect.h" |
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 target->setIndexSourceToBuffer(gpu->getContext()->getQuadIndexBuffer()); | 719 target->setIndexSourceToBuffer(gpu->getContext()->getQuadIndexBuffer()); |
720 target->drawIndexedInstances(kTriangles_GrPrimitiveType, 1, 4, 6); | 720 target->drawIndexedInstances(kTriangles_GrPrimitiveType, 1, 4, 6); |
721 target->resetIndexSource(); | 721 target->resetIndexSource(); |
722 } | 722 } |
723 | 723 |
724 void GrAARectRenderer::strokeAARect(GrGpu* gpu, | 724 void GrAARectRenderer::strokeAARect(GrGpu* gpu, |
725 GrDrawTarget* target, | 725 GrDrawTarget* target, |
726 const SkRect& rect, | 726 const SkRect& rect, |
727 const SkMatrix& combinedMatrix, | 727 const SkMatrix& combinedMatrix, |
728 const SkRect& devRect, | 728 const SkRect& devRect, |
729 const SkStrokeRec* stroke, | 729 const SkStrokeRec& stroke, |
730 bool useVertexCoverage) { | 730 bool useVertexCoverage) { |
731 SkVector devStrokeSize; | 731 SkVector devStrokeSize; |
732 SkScalar width = stroke->getWidth(); | 732 SkScalar width = stroke.getWidth(); |
733 if (width > 0) { | 733 if (width > 0) { |
734 devStrokeSize.set(width, width); | 734 devStrokeSize.set(width, width); |
735 combinedMatrix.mapVectors(&devStrokeSize, 1); | 735 combinedMatrix.mapVectors(&devStrokeSize, 1); |
736 devStrokeSize.setAbs(devStrokeSize); | 736 devStrokeSize.setAbs(devStrokeSize); |
737 } else { | 737 } else { |
738 devStrokeSize.set(SK_Scalar1, SK_Scalar1); | 738 devStrokeSize.set(SK_Scalar1, SK_Scalar1); |
739 } | 739 } |
740 | 740 |
741 const SkScalar dx = devStrokeSize.fX; | 741 const SkScalar dx = devStrokeSize.fX; |
742 const SkScalar dy = devStrokeSize.fY; | 742 const SkScalar dy = devStrokeSize.fY; |
(...skipping 13 matching lines...) Expand all Loading... |
756 SkScalar w = devRect.width() - dx; | 756 SkScalar w = devRect.width() - dx; |
757 SkScalar h = devRect.height() - dy; | 757 SkScalar h = devRect.height() - dy; |
758 spare = SkTMin(w, h); | 758 spare = SkTMin(w, h); |
759 } | 759 } |
760 | 760 |
761 SkRect devOutside(devRect); | 761 SkRect devOutside(devRect); |
762 devOutside.outset(rx, ry); | 762 devOutside.outset(rx, ry); |
763 | 763 |
764 bool miterStroke = true; | 764 bool miterStroke = true; |
765 // small miter limit means right angles show bevel... | 765 // small miter limit means right angles show bevel... |
766 if (stroke->getJoin() != SkPaint::kMiter_Join || stroke->getMiter() < SK_Sca
larSqrt2) { | 766 if (stroke.getJoin() != SkPaint::kMiter_Join || stroke.getMiter() < SK_Scala
rSqrt2) { |
767 miterStroke = false; | 767 miterStroke = false; |
768 } | 768 } |
769 | 769 |
770 if (spare <= 0 && miterStroke) { | 770 if (spare <= 0 && miterStroke) { |
771 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), | 771 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), |
772 devOutside, useVertexCoverage); | 772 devOutside, useVertexCoverage); |
773 return; | 773 return; |
774 } | 774 } |
775 | 775 |
776 SkRect devInside(devRect); | 776 SkRect devInside(devRect); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
923 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; | 923 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; |
924 | 924 |
925 if (devInside.isEmpty()) { | 925 if (devInside.isEmpty()) { |
926 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside, use
VertexCoverage); | 926 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside, use
VertexCoverage); |
927 return; | 927 return; |
928 } | 928 } |
929 | 929 |
930 this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, | 930 this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, |
931 devInside, useVertexCoverage, true); | 931 devInside, useVertexCoverage, true); |
932 } | 932 } |
OLD | NEW |