diff options
36 files changed, 154 insertions, 493 deletions
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp index cefc93336e..fc84fafadd 100644 --- a/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/GrDefaultGeoProcFactory.cpp @@ -55,7 +55,7 @@ public: class GLProcessor : public GrGLGeometryProcessor { public: - GLProcessor(const GrGeometryProcessor& gp, const GrBatchTracker&) + GLProcessor() : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverage(0xff) {} void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { @@ -115,7 +115,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const DefaultGeoProc& def = gp.cast<DefaultGeoProc>(); @@ -131,9 +130,7 @@ public: b->add32(key); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const DefaultGeoProc& dgp = gp.cast<DefaultGeoProc>(); if (!dgp.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(dgp.viewMatrix())) { @@ -175,15 +172,12 @@ public: typedef GrGLGeometryProcessor INHERITED; }; - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override { - GLProcessor::GenKey(*this, bt, caps, b); + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { + GLProcessor::GenKey(*this, caps, b); } - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override { - return new GLProcessor(*this, bt); + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override { + return new GLProcessor(); } private: diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h index 232b73ef07..4d041d64bc 100644 --- a/src/gpu/GrGeometryProcessor.h +++ b/src/gpu/GrGeometryProcessor.h @@ -26,17 +26,6 @@ public: bool willUseGeoShader() const override { return fWillUseGeoShader; } - // TODO delete when paths are in batch - void initBatchTracker(GrBatchTracker*, const GrPipelineOptimizations&) 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"); - } - bool hasTransformedLocalCoords() const override { return kHasTransformed_LocalCoordsType == fLocalCoordsType; } diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h index ba9e85b54f..73a5264bbc 100644 --- a/src/gpu/GrGpu.h +++ b/src/gpu/GrGpu.h @@ -286,8 +286,7 @@ public: virtual void buildProgramDesc(GrProgramDesc*, const GrPrimitiveProcessor&, - const GrPipeline&, - const GrBatchTracker&) const = 0; + const GrPipeline&) const = 0; // Called to perform a surface to surface copy. Fallbacks to issuing a draw from the src to dst // take place at the GrDrawTarget level and this function implement faster copy paths. The rect @@ -301,18 +300,15 @@ public: struct DrawArgs { DrawArgs(const GrPrimitiveProcessor* primProc, const GrPipeline* pipeline, - const GrProgramDesc* desc, - const GrBatchTracker* batchTracker) + const GrProgramDesc* desc) : fPrimitiveProcessor(primProc) , fPipeline(pipeline) - , fDesc(desc) - , fBatchTracker(batchTracker) { - SkASSERT(primProc && pipeline && desc && batchTracker); + , fDesc(desc) { + SkASSERT(primProc && pipeline && desc); } const GrPrimitiveProcessor* fPrimitiveProcessor; const GrPipeline* fPipeline; const GrProgramDesc* fDesc; - const GrBatchTracker* fBatchTracker; }; void draw(const DrawArgs&, const GrVertices&); diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp index 34d3db8924..8eed38233b 100644 --- a/src/gpu/GrOvalRenderer.cpp +++ b/src/gpu/GrOvalRenderer.cpp @@ -89,8 +89,7 @@ public: class GLProcessor : public GrGLGeometryProcessor { public: - GLProcessor(const GrGeometryProcessor&, - const GrBatchTracker&) + GLProcessor() : fColor(GrColor_ILLEGAL) {} void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ @@ -130,7 +129,6 @@ public: } static void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const CircleEdgeEffect& ce = gp.cast<CircleEdgeEffect>(); @@ -140,9 +138,7 @@ public: b->add32(key); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const CircleEdgeEffect& ce = gp.cast<CircleEdgeEffect>(); if (ce.color() != fColor) { GrGLfloat c[4]; @@ -165,15 +161,12 @@ public: typedef GrGLGeometryProcessor INHERITED; }; - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override { - GLProcessor::GenKey(*this, bt, caps, b); + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { + GLProcessor::GenKey(*this, caps, b); } - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override { - return new GLProcessor(*this, bt); + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override { + return new GLProcessor(); } private: @@ -243,8 +236,7 @@ public: class GLProcessor : public GrGLGeometryProcessor { public: - GLProcessor(const GrGeometryProcessor&, - const GrBatchTracker&) + GLProcessor() : fColor(GrColor_ILLEGAL) {} void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ @@ -305,7 +297,6 @@ public: } static void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const EllipseEdgeEffect& ee = gp.cast<EllipseEdgeEffect>(); @@ -315,9 +306,7 @@ public: b->add32(key); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const EllipseEdgeEffect& ee = gp.cast<EllipseEdgeEffect>(); if (ee.color() != fColor) { GrGLfloat c[4]; @@ -341,15 +330,12 @@ public: typedef GrGLGeometryProcessor INHERITED; }; - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override { - GLProcessor::GenKey(*this, bt, caps, b); + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { + GLProcessor::GenKey(*this, caps, b); } - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override { - return new GLProcessor(*this, bt); + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override { + return new GLProcessor(); } private: @@ -361,9 +347,9 @@ private: this->initClassID<EllipseEdgeEffect>(); fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertexAttribType)); fInEllipseOffset = &this->addVertexAttrib(Attribute("inEllipseOffset", - kVec2f_GrVertexAttribType)); + kVec2f_GrVertexAttribType)); fInEllipseRadii = &this->addVertexAttrib(Attribute("inEllipseRadii", - kVec4f_GrVertexAttribType)); + kVec4f_GrVertexAttribType)); fStroke = stroke; } @@ -425,11 +411,10 @@ public: class GLProcessor : public GrGLGeometryProcessor { public: - GLProcessor(const GrGeometryProcessor&, - const GrBatchTracker&) + GLProcessor() : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {} - void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ + void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { const DIEllipseEdgeEffect& ee = args.fGP.cast<DIEllipseEdgeEffect>(); GrGLGPBuilder* pb = args.fPB; GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); @@ -502,7 +487,6 @@ public: } static void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const DIEllipseEdgeEffect& ellipseEffect = gp.cast<DIEllipseEdgeEffect>(); @@ -512,9 +496,7 @@ public: b->add32(key); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const DIEllipseEdgeEffect& dee = gp.cast<DIEllipseEdgeEffect>(); if (!dee.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(dee.viewMatrix())) { @@ -541,15 +523,12 @@ public: typedef GrGLGeometryProcessor INHERITED; }; - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override { - GLProcessor::GenKey(*this, bt, caps, b); + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { + GLProcessor::GenKey(*this, caps, b); } - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override { - return new GLProcessor(*this, bt); + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override { + return new GLProcessor(); } private: diff --git a/src/gpu/GrPathProcessor.cpp b/src/gpu/GrPathProcessor.cpp index ca63eac53d..3702998dd9 100644 --- a/src/gpu/GrPathProcessor.cpp +++ b/src/gpu/GrPathProcessor.cpp @@ -24,67 +24,12 @@ GrPathProcessor::GrPathProcessor(GrColor color, this->initClassID<GrPathProcessor>(); } -void GrPathProcessor::getInvariantOutputColor(GrInitInvariantOutput* out) const { - out->setKnownFourComponents(fColor); -} - -void GrPathProcessor::getInvariantOutputCoverage(GrInitInvariantOutput* out) const { - out->setKnownSingleComponent(0xff); -} - -void GrPathProcessor::initBatchTracker(GrBatchTracker* bt, const GrPipelineOptimizations& opt) const { - PathBatchTracker* local = bt->cast<PathBatchTracker>(); - if (!opt.readsColor()) { - local->fInputColorType = kIgnored_GrGPInput; - local->fColor = GrColor_ILLEGAL; - } else { - local->fInputColorType = kUniform_GrGPInput; - if (!opt.getOverrideColorIfSet(&local->fColor)) { - local->fColor = this->color(); - } - } - - local->fInputCoverageType = opt.readsCoverage() ? kAllOnes_GrGPInput : kIgnored_GrGPInput; - local->fUsesLocalCoords = opt.readsLocalCoords(); -} - -bool GrPathProcessor::isEqual(const GrBatchTracker& m, - const GrPrimitiveProcessor& that, - const GrBatchTracker& t) const { - if (this->classID() != that.classID() || !this->hasSameTextureAccesses(that)) { - return false; - } - - const GrPathProcessor& other = that.cast<GrPathProcessor>(); - if (!this->viewMatrix().cheapEqualTo(other.viewMatrix())) { - return false; - } - - const PathBatchTracker& mine = m.cast<PathBatchTracker>(); - const PathBatchTracker& theirs = t.cast<PathBatchTracker>(); - if (mine.fColor != theirs.fColor) { - return false; - } - - if (mine.fUsesLocalCoords != theirs.fUsesLocalCoords) { - return false; - } - - if (mine.fUsesLocalCoords && !this->localMatrix().cheapEqualTo(other.localMatrix())) { - return false; - } - - return true; -} - -void GrPathProcessor::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrPathProcessor::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLPathProcessor::GenKey(*this, bt, caps, b); + GrGLPathProcessor::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* GrPathProcessor::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps& caps) const { +GrGLPrimitiveProcessor* GrPathProcessor::createGLInstance(const GrGLSLCaps& caps) const { SkASSERT(caps.pathRenderingSupport()); - return new GrGLPathProcessor(*this, bt); + return new GrGLPathProcessor(); } diff --git a/src/gpu/GrPathProcessor.h b/src/gpu/GrPathProcessor.h index adf00577bf..b57f502a86 100644 --- a/src/gpu/GrPathProcessor.h +++ b/src/gpu/GrPathProcessor.h @@ -10,13 +10,6 @@ #include "GrPrimitiveProcessor.h" -struct PathBatchTracker { - GrGPInput fInputColorType; - GrGPInput fInputCoverageType; - GrColor fColor; - bool fUsesLocalCoords; -}; - /* * The path equivalent of the GP. For now this just manages color. In the long term we plan on * extending this class to handle all nvpr uniform / varying / program work. @@ -30,29 +23,18 @@ public: return new GrPathProcessor(color, opts, viewMatrix, localMatrix); } - void initBatchTracker(GrBatchTracker*, const GrPipelineOptimizations&) const override; - - bool isEqual(const GrBatchTracker& mine, - const GrPrimitiveProcessor& that, - const GrBatchTracker& theirs) const; - const char* name() const override { return "PathProcessor"; } GrColor color() const { return fColor; } const SkMatrix& viewMatrix() const { return fViewMatrix; } const SkMatrix& localMatrix() const { return fLocalMatrix; } - void getInvariantOutputColor(GrInitInvariantOutput* out) const override; - void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override; - bool willUseGeoShader() const override { return false; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, + virtual void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps& caps) const override; + virtual GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps& caps) const override; bool hasTransformedLocalCoords() const override { return false; } diff --git a/src/gpu/GrPathRendering.h b/src/gpu/GrPathRendering.h index f13a190829..47c9a46f83 100644 --- a/src/gpu/GrPathRendering.h +++ b/src/gpu/GrPathRendering.h @@ -156,9 +156,8 @@ public: DrawPathArgs(const GrPrimitiveProcessor* primProc, const GrPipeline* pipeline, const GrProgramDesc* desc, - const GrBatchTracker* batchTracker, const GrStencilSettings* stencil) - : DrawArgs(primProc, pipeline, desc, batchTracker) + : DrawArgs(primProc, pipeline, desc) , fStencil(stencil) { } diff --git a/src/gpu/GrPipelineBuilder.cpp b/src/gpu/GrPipelineBuilder.cpp index 39520d4d8d..cb3b4af77e 100644 --- a/src/gpu/GrPipelineBuilder.cpp +++ b/src/gpu/GrPipelineBuilder.cpp @@ -96,17 +96,6 @@ GrPipelineBuilder::~GrPipelineBuilder() { //////////////////////////////////////////////////////////////////////////////// -void GrPipelineBuilder::calcColorInvariantOutput(const GrPrimitiveProcessor* pp) const { - fColorProcInfo.calcColorWithPrimProc(pp, fColorFragmentProcessors.begin(), - this->numColorFragmentProcessors()); - -} - -void GrPipelineBuilder::calcCoverageInvariantOutput(const GrPrimitiveProcessor* pp) const { - fCoverageProcInfo.calcCoverageWithPrimProc(pp, fCoverageFragmentProcessors.begin(), - this->numCoverageFragmentProcessors()); -} - void GrPipelineBuilder::calcColorInvariantOutput(const GrDrawBatch* batch) const { fColorProcInfo.calcColorWithBatch(batch, fColorFragmentProcessors.begin(), this->numColorFragmentProcessors()); diff --git a/src/gpu/GrPipelineBuilder.h b/src/gpu/GrPipelineBuilder.h index f41f6eeae2..e37b54ac8e 100644 --- a/src/gpu/GrPipelineBuilder.h +++ b/src/gpu/GrPipelineBuilder.h @@ -381,17 +381,6 @@ public: /////////////////////////////////////////////////////////////////////////// - // TODO delete when we have Batch - const GrProcOptInfo& colorProcInfo(const GrPrimitiveProcessor* pp) const { - this->calcColorInvariantOutput(pp); - return fColorProcInfo; - } - - const GrProcOptInfo& coverageProcInfo(const GrPrimitiveProcessor* pp) const { - this->calcCoverageInvariantOutput(pp); - return fCoverageProcInfo; - } - const GrProcOptInfo& colorProcInfo(const GrDrawBatch* batch) const { this->calcColorInvariantOutput(batch); return fColorProcInfo; @@ -417,13 +406,6 @@ private: // GrOptDrawState constructor - never caches results /** - * Primproc variants of the calc functions - * TODO remove these when batch is everywhere - */ - void calcColorInvariantOutput(const GrPrimitiveProcessor*) const; - void calcCoverageInvariantOutput(const GrPrimitiveProcessor*) const; - - /** * GrBatch provides the initial seed for these loops based off of its initial geometry data */ void calcColorInvariantOutput(const GrDrawBatch*) const; diff --git a/src/gpu/GrPrimitiveProcessor.h b/src/gpu/GrPrimitiveProcessor.h index cba869eb3f..54155a6d5f 100644 --- a/src/gpu/GrPrimitiveProcessor.h +++ b/src/gpu/GrPrimitiveProcessor.h @@ -42,30 +42,6 @@ * it emits the appropriate color, or none at all, as directed. */ -/* - * A struct for tracking batching decisions. While this lives on GrOptState, it is managed - * entirely by the derived classes of the GP. - * // TODO this was an early attempt at handling out of order batching. It should be - * used carefully as it is being replaced by GrBatch - */ -class GrBatchTracker { -public: - template <typename T> const T& cast() const { - SkASSERT(sizeof(T) <= kMaxSize); - return *reinterpret_cast<const T*>(fData.get()); - } - - template <typename T> T* cast() { - SkASSERT(sizeof(T) <= kMaxSize); - return reinterpret_cast<T*>(fData.get()); - } - - static const size_t kMaxSize = 32; - -private: - SkAlignedSStorage<kMaxSize> fData; -}; - class GrGLSLCaps; class GrGLPrimitiveProcessor; @@ -155,28 +131,12 @@ private: }; /* - * This enum is shared by GrPrimitiveProcessors and GrGLPrimitiveProcessors to coordinate shaders - * with vertex attributes / uniforms. - */ -enum GrGPInput { - kAllOnes_GrGPInput, - kAttribute_GrGPInput, - kUniform_GrGPInput, - kIgnored_GrGPInput, -}; - -/* * GrPrimitiveProcessor defines an interface which all subclasses must implement. All * GrPrimitiveProcessors must proivide seed color and coverage for the Ganesh color / coverage * pipelines, and they must provide some notion of equality */ class GrPrimitiveProcessor : public GrProcessor { public: - virtual void initBatchTracker(GrBatchTracker*, const GrPipelineOptimizations&) const = 0; - - virtual void getInvariantOutputColor(GrInitInvariantOutput* out) const = 0; - virtual void getInvariantOutputCoverage(GrInitInvariantOutput* out) const = 0; - // Only the GrGeometryProcessor subclass actually has a geo shader or vertex attributes, but // we put these calls on the base class to prevent having to cast virtual bool willUseGeoShader() const = 0; @@ -230,16 +190,14 @@ public: * * TODO: A better name for this function would be "compute" instead of "get". */ - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, + virtual void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const = 0; /** Returns a new instance of the appropriate *GL* implementation class for the given GrProcessor; caller is responsible for deleting the object. */ - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps& caps) const = 0; + virtual GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps& caps) const = 0; bool isPathRendering() const { return fIsPathRendering; } diff --git a/src/gpu/GrProcOptInfo.cpp b/src/gpu/GrProcOptInfo.cpp index 19302cc475..d7f2d7f312 100644 --- a/src/gpu/GrProcOptInfo.cpp +++ b/src/gpu/GrProcOptInfo.cpp @@ -29,24 +29,6 @@ void GrProcOptInfo::calcCoverageWithBatch(const GrDrawBatch* batch, this->internalCalc(processors, cnt, batch->willReadFragmentPosition()); } -void GrProcOptInfo::calcColorWithPrimProc(const GrPrimitiveProcessor* primProc, - const GrFragmentProcessor * const processors[], - int cnt) { - GrInitInvariantOutput out; - primProc->getInvariantOutputColor(&out); - fInOut.reset(out); - this->internalCalc(processors, cnt, primProc->willReadFragmentPosition()); -} - -void GrProcOptInfo::calcCoverageWithPrimProc(const GrPrimitiveProcessor* primProc, - const GrFragmentProcessor * const processors[], - int cnt) { - GrInitInvariantOutput out; - primProc->getInvariantOutputCoverage(&out); - fInOut.reset(out); - this->internalCalc(processors, cnt, primProc->willReadFragmentPosition()); -} - void GrProcOptInfo::calcWithInitialValues(const GrFragmentProcessor * const processors[], int cnt, GrColor startColor, diff --git a/src/gpu/GrProcOptInfo.h b/src/gpu/GrProcOptInfo.h index ad23614d81..b46957e7a0 100644 --- a/src/gpu/GrProcOptInfo.h +++ b/src/gpu/GrProcOptInfo.h @@ -36,12 +36,6 @@ public: void calcColorWithBatch(const GrDrawBatch*, const GrFragmentProcessor* const[], int cnt); void calcCoverageWithBatch(const GrDrawBatch*, const GrFragmentProcessor* const[], int cnt); - // TODO delete these when batch is everywhere - void calcColorWithPrimProc(const GrPrimitiveProcessor*, const GrFragmentProcessor* const[], - int cnt); - void calcCoverageWithPrimProc(const GrPrimitiveProcessor*, const GrFragmentProcessor* const[], - int cnt); - bool isSolidWhite() const { return fInOut.isSolidWhite(); } bool isOpaque() const { return fInOut.isOpaque(); } bool isSingleComponent() const { return fInOut.isSingleComponent(); } diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp index 10ce244122..4e697ff655 100644 --- a/src/gpu/GrTest.cpp +++ b/src/gpu/GrTest.cpp @@ -191,9 +191,8 @@ public: GrPixelConfig srcConfig, DrawPreference*, WritePixelTempDrawInfo*) override { return false; } - void buildProgramDesc(GrProgramDesc*,const GrPrimitiveProcessor&, - const GrPipeline&, - const GrBatchTracker&) const override {} + void buildProgramDesc(GrProgramDesc*, const GrPrimitiveProcessor&, + const GrPipeline&) const override {} void discard(GrRenderTarget*) override {} diff --git a/src/gpu/batches/GrAAConvexPathRenderer.cpp b/src/gpu/batches/GrAAConvexPathRenderer.cpp index 613b416601..75bf332790 100644 --- a/src/gpu/batches/GrAAConvexPathRenderer.cpp +++ b/src/gpu/batches/GrAAConvexPathRenderer.cpp @@ -543,8 +543,7 @@ public: class GLProcessor : public GrGLGeometryProcessor { public: - GLProcessor(const GrGeometryProcessor&, - const GrBatchTracker&) + GLProcessor() : fColor(GrColor_ILLEGAL) {} void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { @@ -597,7 +596,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const QuadEdgeEffect& qee = gp.cast<QuadEdgeEffect>(); @@ -607,9 +605,7 @@ public: b->add32(key); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const QuadEdgeEffect& qe = gp.cast<QuadEdgeEffect>(); if (qe.color() != fColor) { GrGLfloat c[4]; @@ -633,15 +629,12 @@ public: typedef GrGLGeometryProcessor INHERITED; }; - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override { - GLProcessor::GenKey(*this, bt, caps, b); + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override { + GLProcessor::GenKey(*this, caps, b); } - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override { - return new GLProcessor(*this, bt); + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override { + return new GLProcessor(); } private: diff --git a/src/gpu/batches/GrDrawPathBatch.cpp b/src/gpu/batches/GrDrawPathBatch.cpp index 3e4c863e33..a47e665607 100644 --- a/src/gpu/batches/GrDrawPathBatch.cpp +++ b/src/gpu/batches/GrDrawPathBatch.cpp @@ -19,10 +19,9 @@ void GrDrawPathBatch::onDraw(GrBatchFlushState* state) { SkAutoTUnref<GrPathProcessor> pathProc(GrPathProcessor::Create(this->color(), this->opts(), this->viewMatrix())); - state->gpu()->buildProgramDesc(&desc, *pathProc, - *this->pipeline(), *this->tracker()); + state->gpu()->buildProgramDesc(&desc, *pathProc, *this->pipeline()); GrPathRendering::DrawPathArgs args(pathProc, this->pipeline(), - &desc, this->tracker(), &this->stencilSettings()); + &desc, &this->stencilSettings()); state->gpu()->pathRendering()->drawPath(args, fPath.get()); } @@ -113,10 +112,9 @@ void GrDrawPathRangeBatch::onDraw(GrBatchFlushState* state) { this->opts(), this->viewMatrix(), fLocalMatrix)); - state->gpu()->buildProgramDesc(&desc, *pathProc, *this->pipeline(), - *this->tracker()); + state->gpu()->buildProgramDesc(&desc, *pathProc, *this->pipeline()); GrPathRendering::DrawPathArgs args(pathProc, this->pipeline(), - &desc, this->tracker(), &this->stencilSettings()); + &desc, &this->stencilSettings()); if (fDraws.count() == 1) { const GrPathRangeDraw& draw = **fDraws.head(); state->gpu()->pathRendering()->drawPaths(args, draw.range(), draw.indices(), diff --git a/src/gpu/batches/GrDrawPathBatch.h b/src/gpu/batches/GrDrawPathBatch.h index dee4d99152..71ef9d42b4 100644 --- a/src/gpu/batches/GrDrawPathBatch.h +++ b/src/gpu/batches/GrDrawPathBatch.h @@ -39,9 +39,6 @@ protected: const SkMatrix& viewMatrix() const { return fViewMatrix; } GrColor color() const { return fColor; } - // TODO delete - const GrBatchTracker* tracker() const { return &fBatchTracker; } - private: void initBatchTracker(const GrPipelineOptimizations& opts) override { opts.getOverrideColorIfSet(&fColor); @@ -53,9 +50,6 @@ private: GrStencilSettings fStencilSettings; GrPipelineOptimizations fOpts; - // TODO delete - GrBatchTracker fBatchTracker; - typedef GrDrawBatch INHERITED; }; diff --git a/src/gpu/batches/GrVertexBatch.cpp b/src/gpu/batches/GrVertexBatch.cpp index 5d10a72595..6e2c1577db 100644 --- a/src/gpu/batches/GrVertexBatch.cpp +++ b/src/gpu/batches/GrVertexBatch.cpp @@ -75,8 +75,8 @@ void GrVertexBatch::onDraw(GrBatchFlushState* state) { GrProgramDesc desc; const GrPipeline* pipeline = this->pipeline(); const GrPrimitiveProcessor* primProc = drawArray.fPrimitiveProcessor.get(); - state->gpu()->buildProgramDesc(&desc, *primProc, *pipeline, fBatchTracker); - GrGpu::DrawArgs args(primProc, pipeline, &desc, &fBatchTracker); + state->gpu()->buildProgramDesc(&desc, *primProc, *pipeline); + GrGpu::DrawArgs args(primProc, pipeline, &desc); int drawCount = drawArray.fDraws.count(); for (int i = 0; i < drawCount; i++) { diff --git a/src/gpu/batches/GrVertexBatch.h b/src/gpu/batches/GrVertexBatch.h index 5ec9683b89..e2265bc8fc 100644 --- a/src/gpu/batches/GrVertexBatch.h +++ b/src/gpu/batches/GrVertexBatch.h @@ -79,9 +79,6 @@ private: // may use a different primitive processor. SkTLList<DrawArray> fDrawArrays; - // What is this? - GrBatchTracker fBatchTracker; - typedef GrDrawBatch INHERITED; }; diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp index 5872992aac..aaa229df0a 100644 --- a/src/gpu/effects/GrBezierEffect.cpp +++ b/src/gpu/effects/GrBezierEffect.cpp @@ -13,19 +13,16 @@ class GrGLConicEffect : public GrGLGeometryProcessor { public: - GrGLConicEffect(const GrGeometryProcessor&, - const GrBatchTracker&); + GrGLConicEffect(const GrGeometryProcessor&); void onEmitCode(EmitArgs&, GrGPArgs*) override; static inline void GenKey(const GrGeometryProcessor&, - const GrBatchTracker&, const GrGLSLCaps&, GrProcessorKeyBuilder*); - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& primProc, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, + const GrPrimitiveProcessor& primProc) override { const GrConicEffect& ce = primProc.cast<GrConicEffect>(); if (!ce.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(ce.viewMatrix())) { @@ -67,8 +64,7 @@ private: typedef GrGLGeometryProcessor INHERITED; }; -GrGLConicEffect::GrGLConicEffect(const GrGeometryProcessor& processor, - const GrBatchTracker& bt) +GrGLConicEffect::GrGLConicEffect(const GrGeometryProcessor& processor) : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverageScale(0xff) { const GrConicEffect& ce = processor.cast<GrConicEffect>(); fEdgeType = ce.getEdgeType(); @@ -170,7 +166,6 @@ void GrGLConicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GrGLConicEffect::GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrConicEffect& ce = gp.cast<GrConicEffect>(); @@ -186,15 +181,13 @@ void GrGLConicEffect::GenKey(const GrGeometryProcessor& gp, GrConicEffect::~GrConicEffect() {} -void GrConicEffect::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrConicEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLConicEffect::GenKey(*this, bt, caps, b); + GrGLConicEffect::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* GrConicEffect::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GrGLConicEffect(*this, bt); +GrGLPrimitiveProcessor* GrConicEffect::createGLInstance(const GrGLSLCaps&) const { + return new GrGLConicEffect(*this); } GrConicEffect::GrConicEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t coverage, @@ -236,19 +229,16 @@ const GrGeometryProcessor* GrConicEffect::TestCreate(GrProcessorTestData* d) { class GrGLQuadEffect : public GrGLGeometryProcessor { public: - GrGLQuadEffect(const GrGeometryProcessor&, - const GrBatchTracker&); + GrGLQuadEffect(const GrGeometryProcessor&); void onEmitCode(EmitArgs&, GrGPArgs*) override; static inline void GenKey(const GrGeometryProcessor&, - const GrBatchTracker&, const GrGLSLCaps&, GrProcessorKeyBuilder*); - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& primProc, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, + const GrPrimitiveProcessor& primProc) override { const GrQuadEffect& qe = primProc.cast<GrQuadEffect>(); if (!qe.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(qe.viewMatrix())) { @@ -290,8 +280,7 @@ private: typedef GrGLGeometryProcessor INHERITED; }; -GrGLQuadEffect::GrGLQuadEffect(const GrGeometryProcessor& processor, - const GrBatchTracker& bt) +GrGLQuadEffect::GrGLQuadEffect(const GrGeometryProcessor& processor) : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverageScale(0xff) { const GrQuadEffect& ce = processor.cast<GrQuadEffect>(); fEdgeType = ce.getEdgeType(); @@ -378,7 +367,6 @@ void GrGLQuadEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GrGLQuadEffect::GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrQuadEffect& ce = gp.cast<GrQuadEffect>(); @@ -394,15 +382,13 @@ void GrGLQuadEffect::GenKey(const GrGeometryProcessor& gp, GrQuadEffect::~GrQuadEffect() {} -void GrQuadEffect::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrQuadEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLQuadEffect::GenKey(*this, bt, caps, b); + GrGLQuadEffect::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* GrQuadEffect::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GrGLQuadEffect(*this, bt); +GrGLPrimitiveProcessor* GrQuadEffect::createGLInstance(const GrGLSLCaps&) const { + return new GrGLQuadEffect(*this); } GrQuadEffect::GrQuadEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t coverage, @@ -445,19 +431,16 @@ const GrGeometryProcessor* GrQuadEffect::TestCreate(GrProcessorTestData* d) { class GrGLCubicEffect : public GrGLGeometryProcessor { public: - GrGLCubicEffect(const GrGeometryProcessor&, - const GrBatchTracker&); + GrGLCubicEffect(const GrGeometryProcessor&); void onEmitCode(EmitArgs&, GrGPArgs*) override; static inline void GenKey(const GrGeometryProcessor&, - const GrBatchTracker&, const GrGLSLCaps&, GrProcessorKeyBuilder*); - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& primProc, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, + const GrPrimitiveProcessor& primProc) override { const GrCubicEffect& ce = primProc.cast<GrCubicEffect>(); if (!ce.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(ce.viewMatrix())) { @@ -485,8 +468,7 @@ private: typedef GrGLGeometryProcessor INHERITED; }; -GrGLCubicEffect::GrGLCubicEffect(const GrGeometryProcessor& processor, - const GrBatchTracker&) +GrGLCubicEffect::GrGLCubicEffect(const GrGeometryProcessor& processor) : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) { const GrCubicEffect& ce = processor.cast<GrCubicEffect>(); fEdgeType = ce.getEdgeType(); @@ -604,7 +586,6 @@ void GrGLCubicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GrGLCubicEffect::GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrCubicEffect& ce = gp.cast<GrCubicEffect>(); @@ -618,15 +599,12 @@ void GrGLCubicEffect::GenKey(const GrGeometryProcessor& gp, GrCubicEffect::~GrCubicEffect() {} -void GrCubicEffect::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const { - GrGLCubicEffect::GenKey(*this, bt, caps, b); +void GrCubicEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { + GrGLCubicEffect::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* GrCubicEffect::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GrGLCubicEffect(*this, bt); +GrGLPrimitiveProcessor* GrCubicEffect::createGLInstance(const GrGLSLCaps&) const { + return new GrGLCubicEffect(*this); } GrCubicEffect::GrCubicEffect(GrColor color, const SkMatrix& viewMatrix, diff --git a/src/gpu/effects/GrBezierEffect.h b/src/gpu/effects/GrBezierEffect.h index 1c76c64f5b..81727d2aee 100644 --- a/src/gpu/effects/GrBezierEffect.h +++ b/src/gpu/effects/GrBezierEffect.h @@ -103,12 +103,9 @@ public: bool usesLocalCoords() const { return fUsesLocalCoords; } uint8_t coverageScale() const { return fCoverageScale; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrConicEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimitiveEdgeType, @@ -186,12 +183,9 @@ public: bool usesLocalCoords() const { return fUsesLocalCoords; } uint8_t coverageScale() const { return fCoverageScale; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrQuadEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimitiveEdgeType, @@ -261,12 +255,9 @@ public: bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } const SkMatrix& viewMatrix() const { return fViewMatrix; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrCubicEffect(GrColor, const SkMatrix& viewMatrix, GrPrimitiveEdgeType); diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp index 69c2029edb..e8bcd57e6d 100644 --- a/src/gpu/effects/GrBitmapTextGeoProc.cpp +++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp @@ -15,10 +15,9 @@ class GrGLBitmapTextGeoProc : public GrGLGeometryProcessor { public: - GrGLBitmapTextGeoProc(const GrGeometryProcessor&, const GrBatchTracker&) - : fColor(GrColor_ILLEGAL) {} + GrGLBitmapTextGeoProc() : fColor(GrColor_ILLEGAL) {} - void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ + void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { const GrBitmapTextGeoProc& cte = args.fGP.cast<GrBitmapTextGeoProc>(); GrGLGPBuilder* pb = args.fPB; @@ -73,9 +72,7 @@ public: } } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& gp) override { const GrBitmapTextGeoProc& btgp = gp.cast<GrBitmapTextGeoProc>(); if (btgp.color() != fColor && !btgp.hasVertexColor()) { GrGLfloat c[4]; @@ -93,7 +90,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& proc, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrBitmapTextGeoProc& gp = proc.cast<GrBitmapTextGeoProc>(); @@ -143,16 +139,12 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, GrTexture* texture, this->addTextureAccess(&fTextureAccess); } -void GrBitmapTextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const { - GrGLBitmapTextGeoProc::GenKey(*this, bt, caps, b); +void GrBitmapTextGeoProc::getGLProcessorKey(const GrGLSLCaps& caps,GrProcessorKeyBuilder* b) const { + GrGLBitmapTextGeoProc::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* -GrBitmapTextGeoProc::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps& caps) const { - return new GrGLBitmapTextGeoProc(*this, bt); +GrGLPrimitiveProcessor* GrBitmapTextGeoProc::createGLInstance(const GrGLSLCaps& caps) const { + return new GrGLBitmapTextGeoProc(); } /////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/effects/GrBitmapTextGeoProc.h b/src/gpu/effects/GrBitmapTextGeoProc.h index ab7ba3f990..e9a07bb5b8 100644 --- a/src/gpu/effects/GrBitmapTextGeoProc.h +++ b/src/gpu/effects/GrBitmapTextGeoProc.h @@ -41,12 +41,9 @@ public: const SkMatrix& localMatrix() const { return fLocalMatrix; } bool usesLocalCoords() const { return fUsesLocalCoords; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps& caps) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps& caps) const override; private: GrBitmapTextGeoProc(GrColor, GrTexture* texture, const GrTextureParams& params, diff --git a/src/gpu/effects/GrDashingEffect.cpp b/src/gpu/effects/GrDashingEffect.cpp index 5420dbd167..3ca4c7ae4b 100644 --- a/src/gpu/effects/GrDashingEffect.cpp +++ b/src/gpu/effects/GrDashingEffect.cpp @@ -784,12 +784,9 @@ public: bool usesLocalCoords() const { return fUsesLocalCoords; } - virtual void getGLProcessorKey(const GrBatchTracker&, - const GrGLSLCaps&, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps&, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker&, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: DashingCircleEffect(GrColor, DashAAMode aaMode, const SkMatrix& localMatrix, @@ -812,18 +809,15 @@ private: class GLDashingCircleEffect : public GrGLGeometryProcessor { public: - GLDashingCircleEffect(const GrGeometryProcessor&, const GrBatchTracker&); + GLDashingCircleEffect(); void onEmitCode(EmitArgs&, GrGPArgs*) override; static inline void GenKey(const GrGeometryProcessor&, - const GrBatchTracker&, const GrGLSLCaps&, GrProcessorKeyBuilder*); - virtual void setData(const GrGLProgramDataManager&, - const GrPrimitiveProcessor&, - const GrBatchTracker&) override; + void setData(const GrGLProgramDataManager&, const GrPrimitiveProcessor&) override; void setTransformData(const GrPrimitiveProcessor& primProc, const GrGLProgramDataManager& pdman, @@ -842,8 +836,7 @@ private: typedef GrGLGeometryProcessor INHERITED; }; -GLDashingCircleEffect::GLDashingCircleEffect(const GrGeometryProcessor&, - const GrBatchTracker&) { +GLDashingCircleEffect::GLDashingCircleEffect() { fColor = GrColor_ILLEGAL; fPrevRadius = SK_ScalarMin; fPrevCenterX = SK_ScalarMin; @@ -900,8 +893,7 @@ void GLDashingCircleEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GLDashingCircleEffect::setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& processor, - const GrBatchTracker& bt) { + const GrPrimitiveProcessor& processor) { const DashingCircleEffect& dce = processor.cast<DashingCircleEffect>(); if (dce.color() != fColor) { GrGLfloat c[4]; @@ -912,7 +904,6 @@ void GLDashingCircleEffect::setData(const GrGLProgramDataManager& pdman, } void GLDashingCircleEffect::GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const DashingCircleEffect& dce = gp.cast<DashingCircleEffect>(); @@ -932,15 +923,12 @@ GrGeometryProcessor* DashingCircleEffect::Create(GrColor color, return new DashingCircleEffect(color, aaMode, localMatrix, usesLocalCoords); } -void DashingCircleEffect::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const { - GLDashingCircleEffect::GenKey(*this, bt, caps, b); +void DashingCircleEffect::getGLProcessorKey(const GrGLSLCaps& caps,GrProcessorKeyBuilder* b) const { + GLDashingCircleEffect::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* DashingCircleEffect::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GLDashingCircleEffect(*this, bt); +GrGLPrimitiveProcessor* DashingCircleEffect::createGLInstance(const GrGLSLCaps&) const { + return new GLDashingCircleEffect(); } DashingCircleEffect::DashingCircleEffect(GrColor color, @@ -1007,12 +995,9 @@ public: bool usesLocalCoords() const { return fUsesLocalCoords; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: DashingLineEffect(GrColor, DashAAMode aaMode, const SkMatrix& localMatrix, @@ -1035,18 +1020,15 @@ private: class GLDashingLineEffect : public GrGLGeometryProcessor { public: - GLDashingLineEffect(const GrGeometryProcessor&, const GrBatchTracker&); + GLDashingLineEffect(); void onEmitCode(EmitArgs&, GrGPArgs*) override; static inline void GenKey(const GrGeometryProcessor&, - const GrBatchTracker&, const GrGLSLCaps&, GrProcessorKeyBuilder*); - virtual void setData(const GrGLProgramDataManager&, - const GrPrimitiveProcessor&, - const GrBatchTracker&) override; + void setData(const GrGLProgramDataManager&, const GrPrimitiveProcessor&) override; void setTransformData(const GrPrimitiveProcessor& primProc, const GrGLProgramDataManager& pdman, @@ -1061,8 +1043,7 @@ private: typedef GrGLGeometryProcessor INHERITED; }; -GLDashingLineEffect::GLDashingLineEffect(const GrGeometryProcessor&, - const GrBatchTracker&) { +GLDashingLineEffect::GLDashingLineEffect() { fColor = GrColor_ILLEGAL; } @@ -1136,8 +1117,7 @@ void GLDashingLineEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GLDashingLineEffect::setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& processor, - const GrBatchTracker& bt) { + const GrPrimitiveProcessor& processor) { const DashingLineEffect& de = processor.cast<DashingLineEffect>(); if (de.color() != fColor) { GrGLfloat c[4]; @@ -1148,7 +1128,6 @@ void GLDashingLineEffect::setData(const GrGLProgramDataManager& pdman, } void GLDashingLineEffect::GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const DashingLineEffect& de = gp.cast<DashingLineEffect>(); @@ -1168,15 +1147,13 @@ GrGeometryProcessor* DashingLineEffect::Create(GrColor color, return new DashingLineEffect(color, aaMode, localMatrix, usesLocalCoords); } -void DashingLineEffect::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void DashingLineEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GLDashingLineEffect::GenKey(*this, bt, caps, b); + GLDashingLineEffect::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* DashingLineEffect::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GLDashingLineEffect(*this, bt); +GrGLPrimitiveProcessor* DashingLineEffect::createGLInstance(const GrGLSLCaps&) const { + return new GLDashingLineEffect(); } DashingLineEffect::DashingLineEffect(GrColor color, diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp index f29bab5de2..08fa5ac6d5 100644 --- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp +++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp @@ -21,8 +21,7 @@ class GrGLDistanceFieldA8TextGeoProc : public GrGLGeometryProcessor { public: - GrGLDistanceFieldA8TextGeoProc(const GrGeometryProcessor&, - const GrBatchTracker&) + GrGLDistanceFieldA8TextGeoProc() : fViewMatrix(SkMatrix::InvalidMatrix()) , fColor(GrColor_ILLEGAL) #ifdef SK_GAMMA_APPLY_TO_A8 @@ -144,9 +143,7 @@ public: fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& proc, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& proc) override { #ifdef SK_GAMMA_APPLY_TO_A8 const GrDistanceFieldA8TextGeoProc& dfTexEffect = proc.cast<GrDistanceFieldA8TextGeoProc>(); float distanceAdjust = dfTexEffect.getDistanceAdjust(); @@ -173,7 +170,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrDistanceFieldA8TextGeoProc& dfTexEffect = gp.cast<GrDistanceFieldA8TextGeoProc>(); @@ -236,16 +232,13 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(GrColor color, this->addTextureAccess(&fTextureAccess); } -void GrDistanceFieldA8TextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrDistanceFieldA8TextGeoProc::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLDistanceFieldA8TextGeoProc::GenKey(*this, bt, caps, b); + GrGLDistanceFieldA8TextGeoProc::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* -GrDistanceFieldA8TextGeoProc::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GrGLDistanceFieldA8TextGeoProc(*this, bt); +GrGLPrimitiveProcessor* GrDistanceFieldA8TextGeoProc::createGLInstance(const GrGLSLCaps&) const { + return new GrGLDistanceFieldA8TextGeoProc(); } /////////////////////////////////////////////////////////////////////////////// @@ -282,8 +275,7 @@ const GrGeometryProcessor* GrDistanceFieldA8TextGeoProc::TestCreate(GrProcessorT class GrGLDistanceFieldPathGeoProc : public GrGLGeometryProcessor { public: - GrGLDistanceFieldPathGeoProc(const GrGeometryProcessor&, - const GrBatchTracker&) + GrGLDistanceFieldPathGeoProc() : fViewMatrix(SkMatrix::InvalidMatrix()) , fColor(GrColor_ILLEGAL) , fTextureSize(SkISize::Make(-1, -1)) {} @@ -378,9 +370,7 @@ public: fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& proc, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor& proc) override { SkASSERT(fTextureSizeUni.isValid()); GrTexture* texture = proc.texture(0); @@ -410,7 +400,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrDistanceFieldPathGeoProc& dfTexEffect = gp.cast<GrDistanceFieldPathGeoProc>(); @@ -460,15 +449,13 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc( this->addTextureAccess(&fTextureAccess); } -void GrDistanceFieldPathGeoProc::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrDistanceFieldPathGeoProc::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLDistanceFieldPathGeoProc::GenKey(*this, bt, caps, b); + GrGLDistanceFieldPathGeoProc::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* -GrDistanceFieldPathGeoProc::createGLInstance(const GrBatchTracker& bt, const GrGLSLCaps&) const { - return new GrGLDistanceFieldPathGeoProc(*this, bt); +GrGLPrimitiveProcessor* GrDistanceFieldPathGeoProc::createGLInstance(const GrGLSLCaps&) const { + return new GrGLDistanceFieldPathGeoProc(); } /////////////////////////////////////////////////////////////////////////////// @@ -503,7 +490,7 @@ const GrGeometryProcessor* GrDistanceFieldPathGeoProc::TestCreate(GrProcessorTes class GrGLDistanceFieldLCDTextGeoProc : public GrGLGeometryProcessor { public: - GrGLDistanceFieldLCDTextGeoProc(const GrGeometryProcessor&, const GrBatchTracker&) + GrGLDistanceFieldLCDTextGeoProc() : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) { fDistanceAdjust = GrDistanceFieldLCDTextGeoProc::DistanceAdjust::Make(1.0f, 1.0f, 1.0f); } @@ -650,9 +637,8 @@ public: fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); } - virtual void setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& processor, - const GrBatchTracker& bt) override { + void setData(const GrGLProgramDataManager& pdman, + const GrPrimitiveProcessor& processor) override { SkASSERT(fDistanceAdjustUni.isValid()); const GrDistanceFieldLCDTextGeoProc& dflcd = processor.cast<GrDistanceFieldLCDTextGeoProc>(); @@ -681,7 +667,6 @@ public: } static inline void GenKey(const GrGeometryProcessor& gp, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { const GrDistanceFieldLCDTextGeoProc& dfTexEffect = gp.cast<GrDistanceFieldLCDTextGeoProc>(); @@ -732,16 +717,13 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc( this->addTextureAccess(&fTextureAccess); } -void GrDistanceFieldLCDTextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, +void GrDistanceFieldLCDTextGeoProc::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { - GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, bt, caps, b); + GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, caps, b); } -GrGLPrimitiveProcessor* -GrDistanceFieldLCDTextGeoProc::createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const { - return new GrGLDistanceFieldLCDTextGeoProc(*this, bt); +GrGLPrimitiveProcessor* GrDistanceFieldLCDTextGeoProc::createGLInstance(const GrGLSLCaps&) const { + return new GrGLDistanceFieldLCDTextGeoProc(); } /////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h index b0ebdb04f9..ad8cf972f1 100644 --- a/src/gpu/effects/GrDistanceFieldGeoProc.h +++ b/src/gpu/effects/GrDistanceFieldGeoProc.h @@ -79,12 +79,9 @@ public: #endif uint32_t getFlags() const { return fFlags; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrDistanceFieldA8TextGeoProc(GrColor, const SkMatrix& viewMatrix, @@ -141,12 +138,9 @@ public: uint32_t getFlags() const { return fFlags; } bool usesLocalCoords() const { return fUsesLocalCoords; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* texture, @@ -211,12 +205,9 @@ public: uint32_t getFlags() const { return fFlags; } bool usesLocalCoords() const { return fUsesLocalCoords; } - virtual void getGLProcessorKey(const GrBatchTracker& bt, - const GrGLSLCaps& caps, - GrProcessorKeyBuilder* b) const override; + void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; - virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, - const GrGLSLCaps&) const override; + GrGLPrimitiveProcessor* createGLInstance(const GrGLSLCaps&) const override; private: GrDistanceFieldLCDTextGeoProc(GrColor, const SkMatrix& viewMatrix, diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index f27ff019b4..e10b951d32 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -1577,7 +1577,7 @@ bool GrGLGpu::flushGLState(const DrawArgs& args) { } SkSTArray<8, const GrTextureAccess*> textureAccesses; - program->setData(*args.fPrimitiveProcessor, pipeline, *args.fBatchTracker, &textureAccesses); + program->setData(*args.fPrimitiveProcessor, pipeline, &textureAccesses); int numTextureAccesses = textureAccesses.count(); for (int i = 0; i < numTextureAccesses; i++) { @@ -1652,9 +1652,8 @@ void GrGLGpu::setupGeometry(const GrPrimitiveProcessor& primProc, void GrGLGpu::buildProgramDesc(GrProgramDesc* desc, const GrPrimitiveProcessor& primProc, - const GrPipeline& pipeline, - const GrBatchTracker& batchTracker) const { - if (!GrGLProgramDescBuilder::Build(desc, primProc, pipeline, this, batchTracker)) { + const GrPipeline& pipeline) const { + if (!GrGLProgramDescBuilder::Build(desc, primProc, pipeline, this)) { SkDEBUGFAIL("Failed to generate GL program descriptor"); } } diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h index eaf762d0e2..fecede06c7 100644 --- a/src/gpu/gl/GrGLGpu.h +++ b/src/gpu/gl/GrGLGpu.h @@ -93,8 +93,7 @@ public: void buildProgramDesc(GrProgramDesc*, const GrPrimitiveProcessor&, - const GrPipeline&, - const GrBatchTracker&) const override; + const GrPipeline&) const override; const GrGLContext* glContextForTesting() const override { return &this->glContext(); diff --git a/src/gpu/gl/GrGLPathProcessor.cpp b/src/gpu/gl/GrGLPathProcessor.cpp index bbc3fe5d1d..a971028164 100644 --- a/src/gpu/gl/GrGLPathProcessor.cpp +++ b/src/gpu/gl/GrGLPathProcessor.cpp @@ -11,7 +11,7 @@ #include "GrGLGpu.h" #include "GrGLPathRendering.h" -GrGLPathProcessor::GrGLPathProcessor(const GrPathProcessor&, const GrBatchTracker&) +GrGLPathProcessor::GrGLPathProcessor() : fColor(GrColor_ILLEGAL) {} void GrGLPathProcessor::emitCode(EmitArgs& args) { @@ -40,7 +40,6 @@ void GrGLPathProcessor::emitCode(EmitArgs& args) { } void GrGLPathProcessor::GenKey(const GrPathProcessor& pathProc, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b) { b->add32(SkToInt(pathProc.opts().readsColor()) | @@ -48,8 +47,7 @@ void GrGLPathProcessor::GenKey(const GrPathProcessor& pathProc, } void GrGLPathProcessor::setData(const GrGLProgramDataManager& pdman, - const GrPrimitiveProcessor& primProc, - const GrBatchTracker& bt) { + const GrPrimitiveProcessor& primProc) { const GrPathProcessor& pathProc = primProc.cast<GrPathProcessor>(); if (pathProc.opts().readsColor() && pathProc.color() != fColor) { GrGLfloat c[4]; diff --git a/src/gpu/gl/GrGLPathProcessor.h b/src/gpu/gl/GrGLPathProcessor.h index 0f5cad2013..2cbf13034b 100644 --- a/src/gpu/gl/GrGLPathProcessor.h +++ b/src/gpu/gl/GrGLPathProcessor.h @@ -17,10 +17,9 @@ class GrGLPathProgramDataManager; class GrGLPathProcessor : public GrGLPrimitiveProcessor { public: - GrGLPathProcessor(const GrPathProcessor&, const GrBatchTracker&); + GrGLPathProcessor(); static void GenKey(const GrPathProcessor&, - const GrBatchTracker& bt, const GrGLSLCaps&, GrProcessorKeyBuilder* b); @@ -31,9 +30,7 @@ public: void bindSeparableVaryings(GrGLGpu* gpu, GrGLuint programID); void resolveSeparableVaryings(GrGLGpu* gpu, GrGLuint programId); - void setData(const GrGLProgramDataManager&, - const GrPrimitiveProcessor&, - const GrBatchTracker&) override; + void setData(const GrGLProgramDataManager&, const GrPrimitiveProcessor&) override; void setTransformData(const GrPrimitiveProcessor&, const GrGLPathProgramDataManager&, diff --git a/src/gpu/gl/GrGLPrimitiveProcessor.h b/src/gpu/gl/GrGLPrimitiveProcessor.h index 474b5f460c..4f2a4848b4 100644 --- a/src/gpu/gl/GrGLPrimitiveProcessor.h +++ b/src/gpu/gl/GrGLPrimitiveProcessor.h @@ -31,7 +31,6 @@ public: struct EmitArgs { EmitArgs(GrGLGPBuilder* pb, const GrPrimitiveProcessor& gp, - const GrBatchTracker& bt, const char* outputColor, const char* outputCoverage, const TextureSamplerArray& samplers, @@ -39,7 +38,6 @@ public: TransformsOut* transformsOut) : fPB(pb) , fGP(gp) - , fBT(bt) , fOutputColor(outputColor) , fOutputCoverage(outputCoverage) , fSamplers(samplers) @@ -47,7 +45,6 @@ public: , fTransformsOut(transformsOut) {} GrGLGPBuilder* fPB; const GrPrimitiveProcessor& fGP; - const GrBatchTracker& fBT; const char* fOutputColor; const char* fOutputCoverage; const TextureSamplerArray& fSamplers; @@ -68,9 +65,7 @@ public: GrPrimitiveProcessor parameter is guaranteed to be of the same type that created this GrGLPrimitiveProcessor and to have an identical processor key as the one that created this GrGLPrimitiveProcessor. */ - virtual void setData(const GrGLProgramDataManager&, - const GrPrimitiveProcessor&, - const GrBatchTracker&) = 0; + virtual void setData(const GrGLProgramDataManager&, const GrPrimitiveProcessor&) = 0; static SkMatrix GetTransformMatrix(const SkMatrix& localMatrix, const GrCoordTransform&); diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index 3aaa7ea8ce..c89c5089b2 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -82,13 +82,12 @@ static void append_texture_bindings(const Proc* ip, void GrGLProgram::setData(const GrPrimitiveProcessor& primProc, const GrPipeline& pipeline, - const GrBatchTracker& batchTracker, SkTArray<const GrTextureAccess*>* textureBindings) { this->setRenderTargetState(primProc, pipeline); // we set the textures, and uniforms for installed processors in a generic way, but subclasses // of GLProgram determine how to set coord transforms - fGeometryProcessor->fGLProc->setData(fProgramDataManager, primProc, batchTracker); + fGeometryProcessor->fGLProc->setData(fProgramDataManager, primProc); append_texture_bindings(fGeometryProcessor.get(), primProc, textureBindings); this->setFragmentData(primProc, pipeline, textureBindings); diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h index fee6277ed8..4dfeba345c 100644 --- a/src/gpu/gl/GrGLProgram.h +++ b/src/gpu/gl/GrGLProgram.h @@ -94,7 +94,7 @@ public: * the program is bound before calling, and to bind the outgoing textures to their respective * units upon return. (Each index in the array corresponds to its matching GL texture unit.) */ - void setData(const GrPrimitiveProcessor&, const GrPipeline&, const GrBatchTracker&, + void setData(const GrPrimitiveProcessor&, const GrPipeline&, SkTArray<const GrTextureAccess*>* textureBindings); protected: diff --git a/src/gpu/gl/GrGLProgramDesc.cpp b/src/gpu/gl/GrGLProgramDesc.cpp index 6b38cc6d93..281f2c06a6 100644 --- a/src/gpu/gl/GrGLProgramDesc.cpp +++ b/src/gpu/gl/GrGLProgramDesc.cpp @@ -111,8 +111,7 @@ static bool get_frag_proc_and_meta_keys(const GrPrimitiveProcessor& primProc, bool GrGLProgramDescBuilder::Build(GrProgramDesc* desc, const GrPrimitiveProcessor& primProc, const GrPipeline& pipeline, - const GrGLGpu* gpu, - const GrBatchTracker& batchTracker) { + const GrGLGpu* gpu) { // The descriptor is used as a cache key. Thus when a field of the // descriptor will not affect program generation (because of the attribute // bindings in use or other descriptor field settings) it should be set @@ -127,7 +126,7 @@ bool GrGLProgramDescBuilder::Build(GrProgramDesc* desc, GrProcessorKeyBuilder b(&glDesc->key()); - primProc.getGLProcessorKey(batchTracker, *gpu->glCaps().glslCaps(), &b); + primProc.getGLProcessorKey(*gpu->glCaps().glslCaps(), &b); //**** use glslCaps here? if (!get_meta_key(primProc, gpu->glCaps(), 0, &b)) { glDesc->key().reset(); diff --git a/src/gpu/gl/GrGLProgramDesc.h b/src/gpu/gl/GrGLProgramDesc.h index 1d53e62692..7ce79ecae9 100644 --- a/src/gpu/gl/GrGLProgramDesc.h +++ b/src/gpu/gl/GrGLProgramDesc.h @@ -59,8 +59,7 @@ public: static bool Build(GrProgramDesc*, const GrPrimitiveProcessor&, const GrPipeline&, - const GrGLGpu*, - const GrBatchTracker&); + const GrGLGpu*); }; #endif diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp index e6e93e9f28..84e4a99be2 100644 --- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp +++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp @@ -302,13 +302,12 @@ void GrGLProgramBuilder::emitAndInstallProc(const GrPrimitiveProcessor& gp, SkASSERT(!fGeometryProcessor); fGeometryProcessor = new GrGLInstalledGeoProc; - const GrBatchTracker& bt = this->batchTracker(); - fGeometryProcessor->fGLProc.reset(gp.createGLInstance(bt, *fGpu->glCaps().glslCaps())); + fGeometryProcessor->fGLProc.reset(gp.createGLInstance(*fGpu->glCaps().glslCaps())); SkSTArray<4, GrGLProcessor::TextureSampler> samplers(gp.numTextures()); this->emitSamplers(gp, &samplers, fGeometryProcessor); - GrGLGeometryProcessor::EmitArgs args(this, gp, bt, outColor, outCoverage, samplers, + GrGLGeometryProcessor::EmitArgs args(this, gp, outColor, outCoverage, samplers, fCoordTransforms, &fOutCoords); fGeometryProcessor->fGLProc->emitCode(args); diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.h b/src/gpu/gl/builders/GrGLProgramBuilder.h index 1d5e5fbcfe..4eea150ae2 100644 --- a/src/gpu/gl/builders/GrGLProgramBuilder.h +++ b/src/gpu/gl/builders/GrGLProgramBuilder.h @@ -290,7 +290,6 @@ protected: const GrPrimitiveProcessor& primitiveProcessor() const { return *fArgs.fPrimitiveProcessor; } const GrPipeline& pipeline() const { return *fArgs.fPipeline; } const GrProgramDesc& desc() const { return *fArgs.fDesc; } - const GrBatchTracker& batchTracker() const { return *fArgs.fBatchTracker; } const GrProgramDesc::KeyHeader& header() const { return fArgs.fDesc->header(); } // Generates a name for a variable. The generated string will be name prefixed by the prefix |