remove localmatrix from GrGeometryProcessor base class
BUG=skia:
Review URL: https://codereview.chromium.org/1131513005
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp
index 4ceeca9..6dbf71e 100644
--- a/src/gpu/GrDefaultGeoProcFactory.cpp
+++ b/src/gpu/GrDefaultGeoProcFactory.cpp
@@ -40,6 +40,7 @@
const Attribute* inCoverage() const { return fInCoverage; }
GrColor color() const { return fColor; }
const SkMatrix& viewMatrix() const { return fViewMatrix; }
+ const SkMatrix& localMatrix() const { return fLocalMatrix; }
uint8_t coverage() const { return fCoverage; }
void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override {
@@ -121,7 +122,7 @@
const BatchTracker& local = bt.cast<BatchTracker>();
uint32_t key = def.fFlags;
key |= local.fInputColorType << 8 | local.fInputCoverageType << 16;
- key |= local.fUsesLocalCoords && gp.localMatrix().hasPerspective() ? 0x1 << 24 : 0x0;
+ key |= local.fUsesLocalCoords && def.localMatrix().hasPerspective() ? 0x1 << 24 : 0x0;
key |= ComputePosKey(def.viewMatrix()) << 25;
b->add32(key);
}
@@ -145,6 +146,13 @@
}
}
+ void setTransformData(const GrPrimitiveProcessor& primProc,
+ const GrGLProgramDataManager& pdman,
+ int index,
+ const SkTArray<const GrCoordTransform*, true>& transforms) override {
+ this->setTransformDataHelper<DefaultGeoProc>(primProc, pdman, index, transforms);
+ }
+
private:
GrColor fColor;
uint8_t fCoverage;
@@ -171,13 +179,13 @@
const SkMatrix& viewMatrix,
const SkMatrix& localMatrix,
uint8_t coverage)
- : INHERITED(localMatrix)
- , fInPosition(NULL)
+ : fInPosition(NULL)
, fInColor(NULL)
, fInLocalCoords(NULL)
, fInCoverage(NULL)
, fColor(color)
, fViewMatrix(viewMatrix)
+ , fLocalMatrix(localMatrix)
, fCoverage(coverage)
, fFlags(gpTypeFlags) {
this->initClassID<DefaultGeoProc>();
@@ -213,6 +221,7 @@
const Attribute* fInCoverage;
GrColor fColor;
SkMatrix fViewMatrix;
+ SkMatrix fLocalMatrix;
uint8_t fCoverage;
uint32_t fFlags;