OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "GrOvalRenderer.h" | 8 #include "GrOvalRenderer.h" |
9 | 9 |
10 #include "GrBatchFlushState.h" | 10 #include "GrBatchFlushState.h" |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 fGeoData[i].fColor, | 660 fGeoData[i].fColor, |
661 fGeoData[i].fDevBounds.fLeft, fGeoData[i].fDevBounds.
fTop, | 661 fGeoData[i].fDevBounds.fLeft, fGeoData[i].fDevBounds.
fTop, |
662 fGeoData[i].fDevBounds.fRight, fGeoData[i].fDevBounds
.fBottom, | 662 fGeoData[i].fDevBounds.fRight, fGeoData[i].fDevBounds
.fBottom, |
663 fGeoData[i].fInnerRadius, | 663 fGeoData[i].fInnerRadius, |
664 fGeoData[i].fOuterRadius); | 664 fGeoData[i].fOuterRadius); |
665 } | 665 } |
666 string.append(INHERITED::dumpInfo()); | 666 string.append(INHERITED::dumpInfo()); |
667 return string; | 667 return string; |
668 } | 668 } |
669 | 669 |
670 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { | 670 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvariant
Output* coverage, |
| 671 bool* usePLSDstRead) const override { |
671 // When this is called on a batch, there is only one geometry bundle | 672 // When this is called on a batch, there is only one geometry bundle |
672 out->setKnownFourComponents(fGeoData[0].fColor); | 673 color->setKnownFourComponents(fGeoData[0].fColor); |
673 } | 674 coverage->setUnknownSingleComponent(); |
674 | 675 *usePLSDstRead = false; |
675 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { | |
676 out->setUnknownSingleComponent(); | |
677 } | 676 } |
678 | 677 |
679 private: | 678 private: |
680 void initBatchTracker(const GrPipelineOptimizations& opt) override { | 679 void initBatchTracker(const GrPipelineOptimizations& opt) override { |
681 // Handle any color overrides | 680 // Handle any color overrides |
682 if (!opt.readsColor()) { | 681 if (!opt.readsColor()) { |
683 fGeoData[0].fColor = GrColor_ILLEGAL; | 682 fGeoData[0].fColor = GrColor_ILLEGAL; |
684 } | 683 } |
685 opt.getOverrideColorIfSet(&fGeoData[0].fColor); | 684 opt.getOverrideColorIfSet(&fGeoData[0].fColor); |
686 | 685 |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 SkScalar fInnerXRadius; | 879 SkScalar fInnerXRadius; |
881 SkScalar fInnerYRadius; | 880 SkScalar fInnerYRadius; |
882 GrColor fColor; | 881 GrColor fColor; |
883 bool fStroke; | 882 bool fStroke; |
884 }; | 883 }; |
885 | 884 |
886 static GrDrawBatch* Create(const Geometry& geometry) { return new EllipseBat
ch(geometry); } | 885 static GrDrawBatch* Create(const Geometry& geometry) { return new EllipseBat
ch(geometry); } |
887 | 886 |
888 const char* name() const override { return "EllipseBatch"; } | 887 const char* name() const override { return "EllipseBatch"; } |
889 | 888 |
890 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { | 889 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvariant
Output* coverage, |
| 890 bool* usePLSDstRead) const { |
891 // When this is called on a batch, there is only one geometry bundle | 891 // When this is called on a batch, there is only one geometry bundle |
892 out->setKnownFourComponents(fGeoData[0].fColor); | 892 color->setKnownFourComponents(fGeoData[0].fColor); |
893 } | 893 coverage->setUnknownSingleComponent(); |
894 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { | 894 *usePLSDstRead = false; |
895 out->setUnknownSingleComponent(); | |
896 } | 895 } |
897 | 896 |
898 private: | 897 private: |
899 void initBatchTracker(const GrPipelineOptimizations& opt) override { | 898 void initBatchTracker(const GrPipelineOptimizations& opt) override { |
900 // Handle any color overrides | 899 // Handle any color overrides |
901 if (!opt.readsCoverage()) { | 900 if (!opt.readsCoverage()) { |
902 fGeoData[0].fColor = GrColor_ILLEGAL; | 901 fGeoData[0].fColor = GrColor_ILLEGAL; |
903 } | 902 } |
904 opt.getOverrideColorIfSet(&fGeoData[0].fColor); | 903 opt.getOverrideColorIfSet(&fGeoData[0].fColor); |
905 | 904 |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1151 GrColor fColor; | 1150 GrColor fColor; |
1152 DIEllipseEdgeEffect::Mode fMode; | 1151 DIEllipseEdgeEffect::Mode fMode; |
1153 }; | 1152 }; |
1154 | 1153 |
1155 static GrDrawBatch* Create(const Geometry& geometry, const SkRect& bounds) { | 1154 static GrDrawBatch* Create(const Geometry& geometry, const SkRect& bounds) { |
1156 return new DIEllipseBatch(geometry, bounds); | 1155 return new DIEllipseBatch(geometry, bounds); |
1157 } | 1156 } |
1158 | 1157 |
1159 const char* name() const override { return "DIEllipseBatch"; } | 1158 const char* name() const override { return "DIEllipseBatch"; } |
1160 | 1159 |
1161 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { | 1160 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvariant
Output* coverage, |
| 1161 bool* usePLSDstRead) const { |
1162 // When this is called on a batch, there is only one geometry bundle | 1162 // When this is called on a batch, there is only one geometry bundle |
1163 out->setKnownFourComponents(fGeoData[0].fColor); | 1163 color->setKnownFourComponents(fGeoData[0].fColor); |
1164 } | 1164 coverage->setUnknownSingleComponent(); |
1165 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { | 1165 *usePLSDstRead = false; |
1166 out->setUnknownSingleComponent(); | |
1167 } | 1166 } |
1168 | 1167 |
1169 private: | 1168 private: |
1170 | 1169 |
1171 void initBatchTracker(const GrPipelineOptimizations& opt) override { | 1170 void initBatchTracker(const GrPipelineOptimizations& opt) override { |
1172 // Handle any color overrides | 1171 // Handle any color overrides |
1173 if (!opt.readsColor()) { | 1172 if (!opt.readsColor()) { |
1174 fGeoData[0].fColor = GrColor_ILLEGAL; | 1173 fGeoData[0].fColor = GrColor_ILLEGAL; |
1175 } | 1174 } |
1176 opt.getOverrideColorIfSet(&fGeoData[0].fColor); | 1175 opt.getOverrideColorIfSet(&fGeoData[0].fColor); |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1506 GrColor fColor; | 1505 GrColor fColor; |
1507 bool fStroke; | 1506 bool fStroke; |
1508 }; | 1507 }; |
1509 | 1508 |
1510 static GrDrawBatch* Create(const Geometry& geometry) { | 1509 static GrDrawBatch* Create(const Geometry& geometry) { |
1511 return new RRectCircleRendererBatch(geometry); | 1510 return new RRectCircleRendererBatch(geometry); |
1512 } | 1511 } |
1513 | 1512 |
1514 const char* name() const override { return "RRectCircleBatch"; } | 1513 const char* name() const override { return "RRectCircleBatch"; } |
1515 | 1514 |
1516 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { | 1515 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvariant
Output* coverage, |
| 1516 bool* usePLSDstRead) const { |
1517 // When this is called on a batch, there is only one geometry bundle | 1517 // When this is called on a batch, there is only one geometry bundle |
1518 out->setKnownFourComponents(fGeoData[0].fColor); | 1518 color->setKnownFourComponents(fGeoData[0].fColor); |
1519 } | 1519 coverage->setUnknownSingleComponent(); |
1520 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { | 1520 *usePLSDstRead = false; |
1521 out->setUnknownSingleComponent(); | |
1522 } | 1521 } |
1523 | 1522 |
1524 private: | 1523 private: |
1525 void initBatchTracker(const GrPipelineOptimizations& opt) override { | 1524 void initBatchTracker(const GrPipelineOptimizations& opt) override { |
1526 // Handle any color overrides | 1525 // Handle any color overrides |
1527 if (!opt.readsColor()) { | 1526 if (!opt.readsColor()) { |
1528 fGeoData[0].fColor = GrColor_ILLEGAL; | 1527 fGeoData[0].fColor = GrColor_ILLEGAL; |
1529 } | 1528 } |
1530 opt.getOverrideColorIfSet(&fGeoData[0].fColor); | 1529 opt.getOverrideColorIfSet(&fGeoData[0].fColor); |
1531 | 1530 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1685 GrColor fColor; | 1684 GrColor fColor; |
1686 bool fStroke; | 1685 bool fStroke; |
1687 }; | 1686 }; |
1688 | 1687 |
1689 static GrDrawBatch* Create(const Geometry& geometry) { | 1688 static GrDrawBatch* Create(const Geometry& geometry) { |
1690 return new RRectEllipseRendererBatch(geometry); | 1689 return new RRectEllipseRendererBatch(geometry); |
1691 } | 1690 } |
1692 | 1691 |
1693 const char* name() const override { return "RRectEllipseRendererBatch"; } | 1692 const char* name() const override { return "RRectEllipseRendererBatch"; } |
1694 | 1693 |
1695 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { | 1694 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvariant
Output* coverage, |
| 1695 bool* usePLSDstRead) const { |
1696 // When this is called on a batch, there is only one geometry bundle | 1696 // When this is called on a batch, there is only one geometry bundle |
1697 out->setKnownFourComponents(fGeoData[0].fColor); | 1697 color->setKnownFourComponents(fGeoData[0].fColor); |
1698 } | 1698 coverage->setUnknownSingleComponent(); |
1699 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { | 1699 *usePLSDstRead = false; |
1700 out->setUnknownSingleComponent(); | |
1701 } | 1700 } |
1702 | 1701 |
1703 private: | 1702 private: |
1704 void initBatchTracker(const GrPipelineOptimizations& opt) override { | 1703 void initBatchTracker(const GrPipelineOptimizations& opt) override { |
1705 // Handle any color overrides | 1704 // Handle any color overrides |
1706 if (!opt.readsColor()) { | 1705 if (!opt.readsColor()) { |
1707 fGeoData[0].fColor = GrColor_ILLEGAL; | 1706 fGeoData[0].fColor = GrColor_ILLEGAL; |
1708 } | 1707 } |
1709 opt.getOverrideColorIfSet(&fGeoData[0].fColor); | 1708 opt.getOverrideColorIfSet(&fGeoData[0].fColor); |
1710 | 1709 |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2073 } | 2072 } |
2074 | 2073 |
2075 DRAW_BATCH_TEST_DEFINE(RRectBatch) { | 2074 DRAW_BATCH_TEST_DEFINE(RRectBatch) { |
2076 SkMatrix viewMatrix = GrTest::TestMatrixRectStaysRect(random); | 2075 SkMatrix viewMatrix = GrTest::TestMatrixRectStaysRect(random); |
2077 GrColor color = GrRandomColor(random); | 2076 GrColor color = GrRandomColor(random); |
2078 const SkRRect& rrect = GrTest::TestRRectSimple(random); | 2077 const SkRRect& rrect = GrTest::TestRRectSimple(random); |
2079 return create_rrect_batch(color, viewMatrix, rrect, GrTest::TestStrokeRec(ra
ndom)); | 2078 return create_rrect_batch(color, viewMatrix, rrect, GrTest::TestStrokeRec(ra
ndom)); |
2080 } | 2079 } |
2081 | 2080 |
2082 #endif | 2081 #endif |
OLD | NEW |