diff options
author | 2015-04-28 09:17:05 -0700 | |
---|---|---|
committer | 2015-04-28 09:17:05 -0700 | |
commit | 50cb76b2bb0ffa607a1409f77be0ae7d64e31436 (patch) | |
tree | af55e571828da1a7353457451bafab547079fa1f /src/gpu/GrOvalRenderer.cpp | |
parent | ef292a0901205b9785a30daae2c036aa34a970ca (diff) |
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
Diffstat (limited to 'src/gpu/GrOvalRenderer.cpp')
-rw-r--r-- | src/gpu/GrOvalRenderer.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp index abd34ae4c2..e9cda2fd64 100644 --- a/src/gpu/GrOvalRenderer.cpp +++ b/src/gpu/GrOvalRenderer.cpp @@ -174,6 +174,17 @@ public: 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: CircleEdgeEffect(GrColor color, bool stroke, const SkMatrix& localMatrix) : INHERITED(color, SkMatrix::I(), localMatrix) { @@ -184,6 +195,15 @@ private: fStroke = stroke; } + bool onIsEqual(const GrGeometryProcessor& other) const override { + const CircleEdgeEffect& cee = other.cast<CircleEdgeEffect>(); + return cee.fStroke == fStroke; + } + + void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const override { + out->setUnknownSingleComponent(); + } + struct BatchTracker { GrGPInput fInputColorType; GrColor fColor; @@ -349,6 +369,17 @@ public: 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: EllipseEdgeEffect(GrColor color, bool stroke, const SkMatrix& localMatrix) : INHERITED(color, SkMatrix::I(), localMatrix) { @@ -361,6 +392,15 @@ private: fStroke = stroke; } + bool onIsEqual(const GrGeometryProcessor& other) const override { + const EllipseEdgeEffect& eee = other.cast<EllipseEdgeEffect>(); + return eee.fStroke == fStroke; + } + + void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const override { + out->setUnknownSingleComponent(); + } + struct BatchTracker { GrGPInput fInputColorType; GrColor fColor; @@ -544,6 +584,17 @@ public: 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: DIEllipseEdgeEffect(GrColor color, const SkMatrix& viewMatrix, Mode mode) : INHERITED(color, viewMatrix) { @@ -556,6 +607,15 @@ private: fMode = mode; } + bool onIsEqual(const GrGeometryProcessor& other) const override { + const DIEllipseEdgeEffect& eee = other.cast<DIEllipseEdgeEffect>(); + return eee.fMode == fMode; + } + + void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const override { + out->setUnknownSingleComponent(); + } + struct BatchTracker { GrGPInput fInputColorType; GrColor fColor; |