diff options
Diffstat (limited to 'src/effects/gradients')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 13 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 13 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 17 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.cpp | 6 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 58 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient_gpu.h | 3 |
12 files changed, 45 insertions, 79 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 2f89352435..e25ec9e37f 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -1058,7 +1058,6 @@ void GrGLGradientEffect::emitColor(GrGLFPBuilder* builder, ///////////////////////////////////////////////////////////////////// GrGradientEffect::GrGradientEffect(GrContext* ctx, - GrProcessorDataManager*, const SkGradientShaderBase& shader, const SkMatrix& matrix, SkShader::TileMode tileMode) { diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index 38b506be7e..f6e80d9238 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -327,7 +327,6 @@ class GrGradientEffect : public GrFragmentProcessor { public: GrGradientEffect(GrContext* ctx, - GrProcessorDataManager*, const SkGradientShaderBase& shader, const SkMatrix& matrix, SkShader::TileMode tileMode); diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index 31fcd3fb7f..11c79f0956 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -468,11 +468,10 @@ class GrLinearGradient : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkLinearGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - return new GrLinearGradient(ctx, procDataManager, shader, matrix, tm); + return new GrLinearGradient(ctx, shader, matrix, tm); } virtual ~GrLinearGradient() { } @@ -481,11 +480,10 @@ public: private: GrLinearGradient(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkLinearGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) - : INHERITED(ctx, procDataManager, shader, matrix, tm) { + : INHERITED(ctx, shader, matrix, tm) { this->initClassID<GrLinearGradient>(); } @@ -520,7 +518,7 @@ const GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d) colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -542,8 +540,7 @@ const GrFragmentProcessor* SkLinearGradient::asFragmentProcessor( GrContext* context, const SkMatrix& viewm, const SkMatrix* localMatrix, - SkFilterQuality, - GrProcessorDataManager* procDataManager) const { + SkFilterQuality) const { SkASSERT(context); SkMatrix matrix; @@ -560,7 +557,7 @@ const GrFragmentProcessor* SkLinearGradient::asFragmentProcessor( matrix.postConcat(fPtsToUnit); SkAutoTUnref<const GrFragmentProcessor> inner( - GrLinearGradient::Create(context, procDataManager, *this, matrix, fTileMode)); + GrLinearGradient::Create(context, *this, matrix, fTileMode)); return GrFragmentProcessor::MulOutputByInputAlpha(inner); } diff --git a/src/effects/gradients/SkLinearGradient.h b/src/effects/gradients/SkLinearGradient.h index af1088b369..488775ea93 100644 --- a/src/effects/gradients/SkLinearGradient.h +++ b/src/effects/gradients/SkLinearGradient.h @@ -33,8 +33,7 @@ public: const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix& viewM, const SkMatrix*, - SkFilterQuality, - GrProcessorDataManager*) const override; + SkFilterQuality) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index d402ad98da..de0f764a56 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -440,11 +440,10 @@ private: class GrRadialGradient : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkRadialGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - return new GrRadialGradient(ctx, procDataManager, shader, matrix, tm); + return new GrRadialGradient(ctx, shader, matrix, tm); } virtual ~GrRadialGradient() { } @@ -453,11 +452,10 @@ public: private: GrRadialGradient(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkRadialGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) - : INHERITED(ctx, procDataManager, shader, matrix, tm) { + : INHERITED(ctx, shader, matrix, tm) { this->initClassID<GrRadialGradient>(); } @@ -492,7 +490,7 @@ const GrFragmentProcessor* GrRadialGradient::TestCreate(GrProcessorTestData* d) colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -515,8 +513,7 @@ const GrFragmentProcessor* SkRadialGradient::asFragmentProcessor( GrContext* context, const SkMatrix& viewM, const SkMatrix* localMatrix, - SkFilterQuality, - GrProcessorDataManager* procDataManager) const { + SkFilterQuality) const { SkASSERT(context); SkMatrix matrix; @@ -532,7 +529,7 @@ const GrFragmentProcessor* SkRadialGradient::asFragmentProcessor( } matrix.postConcat(fPtsToUnit); SkAutoTUnref<const GrFragmentProcessor> inner( - GrRadialGradient::Create(context, procDataManager, *this, matrix, fTileMode)); + GrRadialGradient::Create(context, *this, matrix, fTileMode)); return GrFragmentProcessor::MulOutputByInputAlpha(inner); } diff --git a/src/effects/gradients/SkRadialGradient.h b/src/effects/gradients/SkRadialGradient.h index 2d4052be14..afffddd22d 100644 --- a/src/effects/gradients/SkRadialGradient.h +++ b/src/effects/gradients/SkRadialGradient.h @@ -33,8 +33,7 @@ public: const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix& viewM, const SkMatrix*, - SkFilterQuality, - GrProcessorDataManager*) const override; + SkFilterQuality) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 7e57ebe2b4..5fcb083c40 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -191,9 +191,9 @@ private: class GrSweepGradient : public GrGradientEffect { public: - static GrFragmentProcessor* Create(GrContext* ctx, GrProcessorDataManager* procDataManager, - const SkSweepGradient& shader, const SkMatrix& m) { - return new GrSweepGradient(ctx, procDataManager, shader, m); + static GrFragmentProcessor* Create(GrContext* ctx, const SkSweepGradient& shader, + const SkMatrix& m) { + return new GrSweepGradient(ctx, shader, m); } virtual ~GrSweepGradient() { } @@ -201,10 +201,9 @@ public: private: GrSweepGradient(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkSweepGradient& shader, const SkMatrix& matrix) - : INHERITED(ctx, procDataManager, shader, matrix, SkShader::kClamp_TileMode) { + : INHERITED(ctx, shader, matrix, SkShader::kClamp_TileMode) { this->initClassID<GrSweepGradient>(); } @@ -238,8 +237,7 @@ const GrFragmentProcessor* GrSweepGradient::TestCreate(GrProcessorTestData* d) { colors, stops, colorCount)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, GrTest::TestMatrix(d->fRandom), - NULL, kNone_SkFilterQuality, - d->fProcDataManager); + NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -273,8 +271,7 @@ const GrFragmentProcessor* SkSweepGradient::asFragmentProcessor( GrContext* context, const SkMatrix& viewM, const SkMatrix* localMatrix, - SkFilterQuality, - GrProcessorDataManager* procDataManager) const { + SkFilterQuality) const { SkMatrix matrix; if (!this->getLocalMatrix().invert(&matrix)) { @@ -290,7 +287,7 @@ const GrFragmentProcessor* SkSweepGradient::asFragmentProcessor( matrix.postConcat(fPtsToUnit); SkAutoTUnref<const GrFragmentProcessor> inner( - GrSweepGradient::Create(context, procDataManager, *this, matrix)); + GrSweepGradient::Create(context, *this, matrix)); return GrFragmentProcessor::MulOutputByInputAlpha(inner); } diff --git a/src/effects/gradients/SkSweepGradient.h b/src/effects/gradients/SkSweepGradient.h index 5b9d24f960..728a01474b 100644 --- a/src/effects/gradients/SkSweepGradient.h +++ b/src/effects/gradients/SkSweepGradient.h @@ -34,8 +34,7 @@ public: const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix& viewM, const SkMatrix*, - SkFilterQuality, - GrProcessorDataManager*) const override; + SkFilterQuality) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp index 05957d64a3..790e1153d8 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp @@ -364,13 +364,11 @@ const GrFragmentProcessor* SkTwoPointConicalGradient::asFragmentProcessor( GrContext* context, const SkMatrix& viewM, const SkMatrix* localMatrix, - SkFilterQuality, - GrProcessorDataManager* procDataManager) const { + SkFilterQuality) const { SkASSERT(context); SkASSERT(fPtsToUnit.isIdentity()); SkAutoTUnref<const GrFragmentProcessor> inner( - Gr2PtConicalGradientEffect::Create(context, procDataManager, *this, fTileMode, - localMatrix)); + Gr2PtConicalGradientEffect::Create(context, *this, fTileMode, localMatrix)); return GrFragmentProcessor::MulOutputByInputAlpha(inner); } diff --git a/src/effects/gradients/SkTwoPointConicalGradient.h b/src/effects/gradients/SkTwoPointConicalGradient.h index 7801945d0c..117e6e967d 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.h +++ b/src/effects/gradients/SkTwoPointConicalGradient.h @@ -63,8 +63,7 @@ public: const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix&, const SkMatrix*, - SkFilterQuality, - GrProcessorDataManager*) const override; + SkFilterQuality) const override; #endif bool isOpaque() const override; diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp index c88e75692c..17f3267e8a 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp @@ -59,11 +59,10 @@ class Edge2PtConicalEffect : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - return new Edge2PtConicalEffect(ctx, procDataManager, shader, matrix, tm); + return new Edge2PtConicalEffect(ctx, shader, matrix, tm); } virtual ~Edge2PtConicalEffect() {} @@ -91,11 +90,10 @@ private: } Edge2PtConicalEffect(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) - : INHERITED(ctx, procDataManager, shader, matrix, tm), + : INHERITED(ctx, shader, matrix, tm), fCenterX1(shader.getCenterX1()), fRadius0(shader.getStartRadius()), fDiffRadius(shader.getDiffRadius()){ @@ -210,7 +208,7 @@ const GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(GrProcessorTestData* colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -368,12 +366,11 @@ class FocalOutside2PtConicalEffect : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, SkScalar focalX) { - return new FocalOutside2PtConicalEffect(ctx, procDataManager, shader, matrix, tm, focalX); + return new FocalOutside2PtConicalEffect(ctx, shader, matrix, tm, focalX); } virtual ~FocalOutside2PtConicalEffect() { } @@ -398,12 +395,11 @@ private: } FocalOutside2PtConicalEffect(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, SkScalar focalX) - : INHERITED(ctx, procDataManager, shader, matrix, tm) + : INHERITED(ctx, shader, matrix, tm) , fFocalX(focalX) , fIsFlipped(shader.isFlippedGrad()) { this->initClassID<FocalOutside2PtConicalEffect>(); @@ -486,7 +482,7 @@ const GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(GrProcessorT colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -579,12 +575,11 @@ class FocalInside2PtConicalEffect : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, SkScalar focalX) { - return new FocalInside2PtConicalEffect(ctx, procDataManager, shader, matrix, tm, focalX); + return new FocalInside2PtConicalEffect(ctx, shader, matrix, tm, focalX); } virtual ~FocalInside2PtConicalEffect() {} @@ -609,12 +604,11 @@ private: } FocalInside2PtConicalEffect(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, SkScalar focalX) - : INHERITED(ctx, procDataManager, shader, matrix, tm), fFocalX(focalX) { + : INHERITED(ctx, shader, matrix, tm), fFocalX(focalX) { this->initClassID<FocalInside2PtConicalEffect>(); } @@ -694,7 +688,7 @@ const GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(GrProcessorTe colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -814,12 +808,11 @@ class CircleInside2PtConicalEffect : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, const CircleConicalInfo& info) { - return new CircleInside2PtConicalEffect(ctx, procDataManager, shader, matrix, tm, info); + return new CircleInside2PtConicalEffect(ctx, shader, matrix, tm, info); } virtual ~CircleInside2PtConicalEffect() {} @@ -848,12 +841,11 @@ private: } CircleInside2PtConicalEffect(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, const CircleConicalInfo& info) - : INHERITED(ctx, procDataManager, shader, matrix, tm), fInfo(info) { + : INHERITED(ctx, shader, matrix, tm), fInfo(info) { this->initClassID<CircleInside2PtConicalEffect>(); } @@ -937,7 +929,7 @@ const GrFragmentProcessor* CircleInside2PtConicalEffect::TestCreate(GrProcessorT colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDataManager); + GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -1026,12 +1018,11 @@ class CircleOutside2PtConicalEffect : public GrGradientEffect { public: static GrFragmentProcessor* Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, const CircleConicalInfo& info) { - return new CircleOutside2PtConicalEffect(ctx, procDataManager, shader, matrix, tm, info); + return new CircleOutside2PtConicalEffect(ctx, shader, matrix, tm, info); } virtual ~CircleOutside2PtConicalEffect() {} @@ -1063,12 +1054,11 @@ private: } CircleOutside2PtConicalEffect(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm, const CircleConicalInfo& info) - : INHERITED(ctx, procDataManager, shader, matrix, tm), fInfo(info) { + : INHERITED(ctx, shader, matrix, tm), fInfo(info) { this->initClassID<CircleOutside2PtConicalEffect>(); if (shader.getStartRadius() != shader.getEndRadius()) { fTLimit = shader.getStartRadius() / (shader.getStartRadius() - shader.getEndRadius()); @@ -1165,8 +1155,7 @@ const GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(GrProcessor colors, stops, colorCount, tm)); const GrFragmentProcessor* fp = shader->asFragmentProcessor( - d->fContext,GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, - d->fProcDataManager); + d->fContext,GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); GrAlwaysAssert(fp); return fp; } @@ -1278,7 +1267,6 @@ void GLCircleOutside2PtConicalEffect::GenKey(const GrProcessor& processor, ////////////////////////////////////////////////////////////////////////////// GrFragmentProcessor* Gr2PtConicalGradientEffect::Create(GrContext* ctx, - GrProcessorDataManager* procDataManager, const SkTwoPointConicalGradient& shader, SkShader::TileMode tm, const SkMatrix* localMatrix) { @@ -1298,14 +1286,12 @@ GrFragmentProcessor* Gr2PtConicalGradientEffect::Create(GrContext* ctx, SkScalar focalX; ConicalType type = set_matrix_focal_conical(shader, &matrix, &focalX); if (type == kInside_ConicalType) { - return FocalInside2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm, - focalX); + return FocalInside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX); } else if(type == kEdge_ConicalType) { set_matrix_edge_conical(shader, &matrix); - return Edge2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm); + return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); } else { - return FocalOutside2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm, - focalX); + return FocalOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX); } } @@ -1313,14 +1299,12 @@ GrFragmentProcessor* Gr2PtConicalGradientEffect::Create(GrContext* ctx, ConicalType type = set_matrix_circle_conical(shader, &matrix, &info); if (type == kInside_ConicalType) { - return CircleInside2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm, - info); + return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, info); } else if (type == kEdge_ConicalType) { set_matrix_edge_conical(shader, &matrix); - return Edge2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm); + return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); } else { - return CircleOutside2PtConicalEffect::Create(ctx, procDataManager, shader, matrix, tm, - info); + return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, info); } } diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.h b/src/effects/gradients/SkTwoPointConicalGradient_gpu.h index 3ab5b29745..601a1667c4 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.h +++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.h @@ -18,8 +18,7 @@ namespace Gr2PtConicalGradientEffect { * Creates an effect that produces a two point conical gradient based on the * shader passed in. */ - GrFragmentProcessor* Create(GrContext* ctx,GrProcessorDataManager* procDataManager, - const SkTwoPointConicalGradient& shader, + GrFragmentProcessor* Create(GrContext* ctx, const SkTwoPointConicalGradient& shader, SkShader::TileMode tm, const SkMatrix* localMatrix); }; |