aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/shaders/gradients/SkGradientShader.cpp4
-rw-r--r--src/shaders/gradients/SkGradientShaderPriv.h12
-rw-r--r--src/shaders/gradients/SkLinearGradient.cpp12
-rw-r--r--src/shaders/gradients/SkRadialGradient.cpp12
-rw-r--r--src/shaders/gradients/SkSweepGradient.cpp26
-rw-r--r--src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp75
6 files changed, 14 insertions, 127 deletions
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp
index e9f6e69f9b..03535ffd98 100644
--- a/src/shaders/gradients/SkGradientShader.cpp
+++ b/src/shaders/gradients/SkGradientShader.cpp
@@ -1040,6 +1040,10 @@ void GrGradientEffect::GLSLProcessor::onSetData(const GrGLSLProgramDataManager&
}
}
+void GrGradientEffect::onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder* b) const {
+ b->add32(GLSLProcessor::GenBaseGradientKey(*this));
+}
+
uint32_t GrGradientEffect::GLSLProcessor::GenBaseGradientKey(const GrProcessor& processor) {
const GrGradientEffect& e = processor.cast<GrGradientEffect>();
diff --git a/src/shaders/gradients/SkGradientShaderPriv.h b/src/shaders/gradients/SkGradientShaderPriv.h
index 0ef86265a4..93c07094dc 100644
--- a/src/shaders/gradients/SkGradientShaderPriv.h
+++ b/src/shaders/gradients/SkGradientShaderPriv.h
@@ -274,6 +274,8 @@ protected:
GrGradientEffect(ClassID classID, const CreateArgs&, bool isOpaque);
explicit GrGradientEffect(const GrGradientEffect&); // facilitates clone() implementations
+ void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const final;
+
// Helper function used by derived class factories to handle color space transformation and
// modulation by input alpha.
static std::unique_ptr<GrFragmentProcessor> AdjustFP(
@@ -362,16 +364,10 @@ public:
fCachedYCoord = SK_ScalarMax;
}
-protected:
- void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
+ static uint32_t GenBaseGradientKey(const GrProcessor&);
protected:
- /**
- * Subclasses must call this. It will return a key for the part of the shader code controlled
- * by the base class. The subclasses must stick it in their key and then pass it to the below
- * emit* functions from their emitCode function.
- */
- static uint32_t GenBaseGradientKey(const GrProcessor&);
+ void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
// Emits the uniform used as the y-coord to texture samples in derived classes. Subclasses
// should call this method from their emitCode().
diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp
index 4932679890..40e227114d 100644
--- a/src/shaders/gradients/SkLinearGradient.cpp
+++ b/src/shaders/gradients/SkLinearGradient.cpp
@@ -120,9 +120,6 @@ private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- virtual void onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const override;
-
GR_DECLARE_FRAGMENT_PROCESSOR_TEST
typedef GrGradientEffect INHERITED;
@@ -136,10 +133,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor& processor, const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
- }
-
private:
typedef GrGradientEffect::GLSLProcessor INHERITED;
};
@@ -150,11 +143,6 @@ GrGLSLFragmentProcessor* GrLinearGradient::onCreateGLSLInstance() const {
return new GrLinearGradient::GLSLLinearProcessor(*this);
}
-void GrLinearGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- GrLinearGradient::GLSLLinearProcessor::GenKey(*this, caps, b);
-}
-
/////////////////////////////////////////////////////////////////////
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient);
diff --git a/src/shaders/gradients/SkRadialGradient.cpp b/src/shaders/gradients/SkRadialGradient.cpp
index 0dede71001..49cfae1471 100644
--- a/src/shaders/gradients/SkRadialGradient.cpp
+++ b/src/shaders/gradients/SkRadialGradient.cpp
@@ -91,9 +91,6 @@ private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- virtual void onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const override;
-
GR_DECLARE_FRAGMENT_PROCESSOR_TEST
typedef GrGradientEffect INHERITED;
@@ -107,10 +104,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor& processor, const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
- }
-
private:
typedef GrGradientEffect::GLSLProcessor INHERITED;
@@ -122,11 +115,6 @@ GrGLSLFragmentProcessor* GrRadialGradient::onCreateGLSLInstance() const {
return new GrRadialGradient::GLSLRadialProcessor(*this);
}
-void GrRadialGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- GrRadialGradient::GLSLRadialProcessor::GenKey(*this, caps, b);
-}
-
/////////////////////////////////////////////////////////////////////
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrRadialGradient);
diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp
index 1f24680476..93746f663c 100644
--- a/src/shaders/gradients/SkSweepGradient.cpp
+++ b/src/shaders/gradients/SkSweepGradient.cpp
@@ -101,15 +101,12 @@ private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- virtual void onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const override;
-
- bool onIsEqual(const GrFragmentProcessor& base) const override {
- const GrSweepGradient& fp = base.cast<GrSweepGradient>();
- return INHERITED::onIsEqual(base)
- && fTBias == fp.fTBias
- && fTScale == fp.fTScale;
- }
+ bool onIsEqual(const GrFragmentProcessor& base) const override {
+ const GrSweepGradient& fp = base.cast<GrSweepGradient>();
+ return INHERITED::onIsEqual(base)
+ && fTBias == fp.fTBias
+ && fTScale == fp.fTScale;
+ }
GR_DECLARE_FRAGMENT_PROCESSOR_TEST
@@ -129,11 +126,6 @@ public:
void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor& processor, const GrShaderCaps&,
- GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
- }
-
protected:
void onSetData(const GrGLSLProgramDataManager& pdman,
const GrFragmentProcessor& processor) override {
@@ -163,12 +155,6 @@ GrGLSLFragmentProcessor* GrSweepGradient::onCreateGLSLInstance() const {
return new GrSweepGradient::GLSLSweepProcessor(*this);
}
-void GrSweepGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- GrSweepGradient::GLSLSweepProcessor::GenKey(*this, caps, b);
-}
-
-
/////////////////////////////////////////////////////////////////////
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSweepGradient);
diff --git a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp
index f370caf3e7..fec4373a33 100644
--- a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp
+++ b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp
@@ -85,8 +85,6 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
-
bool onIsEqual(const GrFragmentProcessor& sBase) const override {
const Edge2PtConicalEffect& s = sBase.cast<Edge2PtConicalEffect>();
return (INHERITED::onIsEqual(sBase) &&
@@ -157,8 +155,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor&, const GrShaderCaps& caps, GrProcessorKeyBuilder* b);
-
protected:
void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
@@ -180,11 +176,6 @@ private:
};
-void Edge2PtConicalEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- Edge2PtConicalEffect::GLSLEdge2PtConicalProcessor::GenKey(*this, caps, b);
-}
-
GrGLSLFragmentProcessor* Edge2PtConicalEffect::onCreateGLSLInstance() const {
return new Edge2PtConicalEffect::GLSLEdge2PtConicalProcessor(*this);
}
@@ -312,11 +303,6 @@ void Edge2PtConicalEffect::GLSLEdge2PtConicalProcessor::onSetData(
}
}
-void Edge2PtConicalEffect::GLSLEdge2PtConicalProcessor::GenKey(const GrProcessor& processor,
- const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
-}
-
//////////////////////////////////////////////////////////////////////////////
// Focal Conical Gradients
//////////////////////////////////////////////////////////////////////////////
@@ -403,8 +389,6 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
-
bool onIsEqual(const GrFragmentProcessor& sBase) const override {
const FocalOutside2PtConicalEffect& s = sBase.cast<FocalOutside2PtConicalEffect>();
return (INHERITED::onIsEqual(sBase) &&
@@ -437,8 +421,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor&, const GrShaderCaps& caps, GrProcessorKeyBuilder* b);
-
protected:
void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
@@ -460,11 +442,6 @@ private:
};
-void FocalOutside2PtConicalEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- FocalOutside2PtConicalEffect::GLSLFocalOutside2PtConicalProcessor::GenKey(*this, caps, b);
-}
-
GrGLSLFragmentProcessor* FocalOutside2PtConicalEffect::onCreateGLSLInstance() const {
return new FocalOutside2PtConicalEffect::GLSLFocalOutside2PtConicalProcessor(*this);
}
@@ -578,12 +555,6 @@ void FocalOutside2PtConicalEffect::GLSLFocalOutside2PtConicalProcessor::onSetDat
}
}
-void FocalOutside2PtConicalEffect::GLSLFocalOutside2PtConicalProcessor::GenKey(
- const GrProcessor& processor,
- const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
-}
-
//////////////////////////////////////////////////////////////////////////////
class FocalInside2PtConicalEffect : public GrGradientEffect {
@@ -611,8 +582,6 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
-
bool onIsEqual(const GrFragmentProcessor& sBase) const override {
const FocalInside2PtConicalEffect& s = sBase.cast<FocalInside2PtConicalEffect>();
return (INHERITED::onIsEqual(sBase) &&
@@ -640,8 +609,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor&, const GrShaderCaps& caps, GrProcessorKeyBuilder* b);
-
protected:
void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
@@ -662,11 +629,6 @@ private:
};
-void FocalInside2PtConicalEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- FocalInside2PtConicalEffect::GLSLFocalInside2PtConicalProcessor::GenKey(*this, caps, b);
-}
-
GrGLSLFragmentProcessor* FocalInside2PtConicalEffect::onCreateGLSLInstance() const {
return new FocalInside2PtConicalEffect::GLSLFocalInside2PtConicalProcessor(*this);
}
@@ -758,12 +720,6 @@ void FocalInside2PtConicalEffect::GLSLFocalInside2PtConicalProcessor::onSetData(
}
}
-void FocalInside2PtConicalEffect::GLSLFocalInside2PtConicalProcessor::GenKey(
- const GrProcessor& processor,
- const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
-}
-
//////////////////////////////////////////////////////////////////////////////
// Circle Conical Gradients
//////////////////////////////////////////////////////////////////////////////
@@ -870,9 +826,6 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- virtual void onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const override;
-
bool onIsEqual(const GrFragmentProcessor& sBase) const override {
const CircleInside2PtConicalEffect& s = sBase.cast<CircleInside2PtConicalEffect>();
return INHERITED::onIsEqual(sBase) && fInfo == s.fInfo;
@@ -899,8 +852,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor&, const GrShaderCaps& caps, GrProcessorKeyBuilder* b);
-
protected:
void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
@@ -927,11 +878,6 @@ private:
};
-void CircleInside2PtConicalEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- CircleInside2PtConicalEffect::GLSLCircleInside2PtConicalProcessor::GenKey(*this, caps, b);
-}
-
GrGLSLFragmentProcessor* CircleInside2PtConicalEffect::onCreateGLSLInstance() const {
return new CircleInside2PtConicalEffect::GLSLCircleInside2PtConicalProcessor(*this);
}
@@ -1056,12 +1002,6 @@ void CircleInside2PtConicalEffect::GLSLCircleInside2PtConicalProcessor::onSetDat
}
}
-void CircleInside2PtConicalEffect::GLSLCircleInside2PtConicalProcessor::GenKey(
- const GrProcessor& processor,
- const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
-}
-
//////////////////////////////////////////////////////////////////////////////
class CircleOutside2PtConicalEffect : public GrGradientEffect {
@@ -1092,8 +1032,6 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
- void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
-
bool onIsEqual(const GrFragmentProcessor& sBase) const override {
const CircleOutside2PtConicalEffect& s = sBase.cast<CircleOutside2PtConicalEffect>();
return INHERITED::onIsEqual(sBase) && fInfo == s.fInfo && fTLimit == s.fTLimit;
@@ -1132,8 +1070,6 @@ public:
virtual void emitCode(EmitArgs&) override;
- static void GenKey(const GrProcessor&, const GrShaderCaps& caps, GrProcessorKeyBuilder* b);
-
protected:
void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override;
@@ -1162,11 +1098,6 @@ private:
};
-void CircleOutside2PtConicalEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
- GrProcessorKeyBuilder* b) const {
- CircleOutside2PtConicalEffect::GLSLCircleOutside2PtConicalProcessor::GenKey(*this, caps, b);
-}
-
GrGLSLFragmentProcessor* CircleOutside2PtConicalEffect::onCreateGLSLInstance() const {
return new CircleOutside2PtConicalEffect::GLSLCircleOutside2PtConicalProcessor(*this);
}
@@ -1312,12 +1243,6 @@ void CircleOutside2PtConicalEffect::GLSLCircleOutside2PtConicalProcessor::onSetD
}
}
-void CircleOutside2PtConicalEffect::GLSLCircleOutside2PtConicalProcessor::GenKey(
- const GrProcessor& processor,
- const GrShaderCaps&, GrProcessorKeyBuilder* b) {
- b->add32(GenBaseGradientKey(processor));
-}
-
//////////////////////////////////////////////////////////////////////////////
std::unique_ptr<GrFragmentProcessor> Gr2PtConicalGradientEffect::Make(