| 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 |