Revert of removing equality / compute invariant loops from GrGeometryProcessors (patchset #2 id:20001 of https://codereview.chromium.org/1111603004/)
Reason for revert:
breaks gl programs
Original issue's description:
> removing equality / compute invariant loops from GrGeometryProcessors
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ef292a0901205b9785a30daae2c036aa34a970ca
TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1110993002
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index 3fde17a..d6eb3d2 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -623,6 +623,17 @@
local->fUsesLocalCoords = init.fUsesLocalCoords;
}
+ bool onCanMakeEqual(const GrBatchTracker& m,
+ const GrGeometryProcessor& that,
+ const GrBatchTracker& t) const override {
+ const BatchTracker& mine = m.cast<BatchTracker>();
+ const BatchTracker& theirs = t.cast<BatchTracker>();
+ return CanCombineLocalMatrices(*this, mine.fUsesLocalCoords,
+ that, theirs.fUsesLocalCoords) &&
+ CanCombineOutput(mine.fInputColorType, mine.fColor,
+ theirs.fInputColorType, theirs.fColor);
+ }
+
private:
QuadEdgeEffect(GrColor color, const SkMatrix& localMatrix)
: INHERITED(color, SkMatrix::I(), localMatrix) {
@@ -631,6 +642,14 @@
fInQuadEdge = &this->addVertexAttrib(Attribute("inQuadEdge", kVec4f_GrVertexAttribType));
}
+ bool onIsEqual(const GrGeometryProcessor& other) const override {
+ return true;
+ }
+
+ void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const override {
+ out->setUnknownSingleComponent();
+ }
+
struct BatchTracker {
GrGPInput fInputColorType;
GrColor fColor;