aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOvalRenderer.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@google.com>2015-04-28 09:17:05 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-28 09:17:05 -0700
commit50cb76b2bb0ffa607a1409f77be0ae7d64e31436 (patch)
treeaf55e571828da1a7353457451bafab547079fa1f /src/gpu/GrOvalRenderer.cpp
parentef292a0901205b9785a30daae2c036aa34a970ca (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.cpp60
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;