Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Unified Diff: src/gpu/GrGeometryProcessor.h

Issue 1111603004: removing equality / compute invariant loops from GrGeometryProcessors (Closed) Base URL: https://skia.googlesource.com/skia.git@cleanup1
Patch Set: tweaks Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrDefaultPathRenderer.cpp ('k') | src/gpu/GrGeometryProcessor.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrGeometryProcessor.h
diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h
index f0e0b0c0085611425a0329c7c0fed550f9860a22..c380f20b0ed7ca1ebbbfeea9b69e6941f8b3b4b0 100644
--- a/src/gpu/GrGeometryProcessor.h
+++ b/src/gpu/GrGeometryProcessor.h
@@ -23,61 +23,33 @@ public:
// atleast bundles
GrGeometryProcessor(GrColor color,
const SkMatrix& viewMatrix = SkMatrix::I(),
- const SkMatrix& localMatrix = SkMatrix::I(),
- bool opaqueVertexColors = false)
+ const SkMatrix& localMatrix = SkMatrix::I())
: INHERITED(viewMatrix, localMatrix, false)
, fColor(color)
- , fOpaqueVertexColors(opaqueVertexColors)
, fWillUseGeoShader(false)
- , fHasVertexColor(false)
, fHasLocalCoords(false) {}
bool willUseGeoShader() const { return fWillUseGeoShader; }
- /*
- * In an ideal world, two GrGeometryProcessors with the same class id and texture accesses
- * would ALWAYS be able to batch together. If two GrGeometryProcesosrs are the same then we
- * will only keep one of them. The remaining GrGeometryProcessor then updates its
- * GrBatchTracker to incorporate the draw information from the GrGeometryProcessor we discard.
- * Any bundles associated with the discarded GrGeometryProcessor will be attached to the
- * remaining GrGeometryProcessor.
- */
+ // TODO delete this when paths are in batch
bool canMakeEqual(const GrBatchTracker& mine,
const GrPrimitiveProcessor& that,
const GrBatchTracker& theirs) const override {
- if (this->classID() != that.classID() || !this->hasSameTextureAccesses(that)) {
- return false;
- }
-
- // TODO let the GPs decide this
- if (!this->viewMatrix().cheapEqualTo(that.viewMatrix())) {
- return false;
- }
-
- // TODO remove the hint
- const GrGeometryProcessor& other = that.cast<GrGeometryProcessor>();
- if (fHasVertexColor && fOpaqueVertexColors != other.fOpaqueVertexColors) {
- return false;
- }
-
- // TODO this equality test should really be broken up, some of this can live on the batch
- // tracker test and some of this should be in bundles
- if (!this->onIsEqual(other)) {
- return false;
- }
-
- return this->onCanMakeEqual(mine, other, theirs);
+ SkFAIL("Unsupported\n");
+ return false;
}
// TODO we can remove color from the GrGeometryProcessor base class once we have bundles of
// primitive data
GrColor color() const { return fColor; }
- // TODO this is a total hack until the gp can do deferred geometry
- bool hasVertexColor() const { return fHasVertexColor; }
-
- void getInvariantOutputColor(GrInitInvariantOutput* out) const override;
- void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override;
+ // TODO Delete when paths are in batch
+ void getInvariantOutputColor(GrInitInvariantOutput* out) const override {
+ SkFAIL("Unsupported\n");
+ }
+ void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override {
+ SkFAIL("Unsupported\n");
+ }
protected:
/*
@@ -128,26 +100,13 @@ protected:
void setWillUseGeoShader() { fWillUseGeoShader = true; }
// TODO hack see above
- void setHasVertexColor() { fHasVertexColor = true; }
void setHasLocalCoords() { fHasLocalCoords = true; }
- virtual void onGetInvariantOutputColor(GrInitInvariantOutput*) const {}
- virtual void onGetInvariantOutputCoverage(GrInitInvariantOutput*) const = 0;
-
private:
- virtual bool onCanMakeEqual(const GrBatchTracker& mine,
- const GrGeometryProcessor& that,
- const GrBatchTracker& theirs) const = 0;
-
- // TODO delete this when we have more advanced equality testing via bundles and the BT
- virtual bool onIsEqual(const GrGeometryProcessor&) const = 0;
-
bool hasExplicitLocalCoords() const override { return fHasLocalCoords; }
GrColor fColor;
- bool fOpaqueVertexColors;
bool fWillUseGeoShader;
- bool fHasVertexColor;
bool fHasLocalCoords;
typedef GrPrimitiveProcessor INHERITED;
« no previous file with comments | « src/gpu/GrDefaultPathRenderer.cpp ('k') | src/gpu/GrGeometryProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698