more threading of GrShaderDataManager
TBR=bsalomon@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1215643006
diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp
index 357e39c..07722e9 100644
--- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp
+++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp
@@ -59,10 +59,11 @@
public:
static GrFragmentProcessor* Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm) {
- return SkNEW_ARGS(Edge2PtConicalEffect, (ctx, shader, matrix, tm));
+ return SkNEW_ARGS(Edge2PtConicalEffect, (ctx, shaderDataManager, shader, matrix, tm));
}
virtual ~Edge2PtConicalEffect() {}
@@ -90,10 +91,11 @@
}
Edge2PtConicalEffect(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm)
- : INHERITED(ctx, shader, matrix, tm),
+ : INHERITED(ctx, shaderDataManager, shader, matrix, tm),
fCenterX1(shader.getCenterX1()),
fRadius0(shader.getStartRadius()),
fDiffRadius(shader.getDiffRadius()){
@@ -381,11 +383,13 @@
public:
static GrFragmentProcessor* Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
SkScalar focalX) {
- return SkNEW_ARGS(FocalOutside2PtConicalEffect, (ctx, shader, matrix, tm, focalX));
+ return SkNEW_ARGS(FocalOutside2PtConicalEffect, (ctx, shaderDataManager, shader, matrix, tm,
+ focalX));
}
virtual ~FocalOutside2PtConicalEffect() { }
@@ -410,11 +414,14 @@
}
FocalOutside2PtConicalEffect(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
SkScalar focalX)
- : INHERITED(ctx, shader, matrix, tm), fFocalX(focalX), fIsFlipped(shader.isFlippedGrad()) {
+ : INHERITED(ctx, shaderDataManager, shader, matrix, tm)
+ , fFocalX(focalX)
+ , fIsFlipped(shader.isFlippedGrad()) {
this->initClassID<FocalOutside2PtConicalEffect>();
}
@@ -604,11 +611,13 @@
public:
static GrFragmentProcessor* Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
SkScalar focalX) {
- return SkNEW_ARGS(FocalInside2PtConicalEffect, (ctx, shader, matrix, tm, focalX));
+ return SkNEW_ARGS(FocalInside2PtConicalEffect, (ctx, shaderDataManager, shader, matrix, tm,
+ focalX));
}
virtual ~FocalInside2PtConicalEffect() {}
@@ -633,11 +642,12 @@
}
FocalInside2PtConicalEffect(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
SkScalar focalX)
- : INHERITED(ctx, shader, matrix, tm), fFocalX(focalX) {
+ : INHERITED(ctx, shaderDataManager, shader, matrix, tm), fFocalX(focalX) {
this->initClassID<FocalInside2PtConicalEffect>();
}
@@ -852,11 +862,13 @@
public:
static GrFragmentProcessor* Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
const CircleConicalInfo& info) {
- return SkNEW_ARGS(CircleInside2PtConicalEffect, (ctx, shader, matrix, tm, info));
+ return SkNEW_ARGS(CircleInside2PtConicalEffect, (ctx, shaderDataManager, shader, matrix, tm,
+ info));
}
virtual ~CircleInside2PtConicalEffect() {}
@@ -885,11 +897,12 @@
}
CircleInside2PtConicalEffect(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
const CircleConicalInfo& info)
- : INHERITED(ctx, shader, matrix, tm), fInfo(info) {
+ : INHERITED(ctx, shaderDataManager, shader, matrix, tm), fInfo(info) {
this->initClassID<CircleInside2PtConicalEffect>();
}
@@ -1077,11 +1090,13 @@
public:
static GrFragmentProcessor* Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
const CircleConicalInfo& info) {
- return SkNEW_ARGS(CircleOutside2PtConicalEffect, (ctx, shader, matrix, tm, info));
+ return SkNEW_ARGS(CircleOutside2PtConicalEffect, (ctx, shaderDataManager, shader, matrix,
+ tm, info));
}
virtual ~CircleOutside2PtConicalEffect() {}
@@ -1113,11 +1128,12 @@
}
CircleOutside2PtConicalEffect(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
const SkMatrix& matrix,
SkShader::TileMode tm,
const CircleConicalInfo& info)
- : INHERITED(ctx, shader, matrix, tm), fInfo(info) {
+ : INHERITED(ctx, shaderDataManager, shader, matrix, tm), fInfo(info) {
this->initClassID<CircleOutside2PtConicalEffect>();
if (shader.getStartRadius() != shader.getEndRadius()) {
fTLimit = shader.getStartRadius() / (shader.getStartRadius() - shader.getEndRadius());
@@ -1341,6 +1357,7 @@
//////////////////////////////////////////////////////////////////////////////
GrFragmentProcessor* Gr2PtConicalGradientEffect::Create(GrContext* ctx,
+ GrShaderDataManager* shaderDataManager,
const SkTwoPointConicalGradient& shader,
SkShader::TileMode tm,
const SkMatrix* localMatrix) {
@@ -1360,12 +1377,14 @@
SkScalar focalX;
ConicalType type = set_matrix_focal_conical(shader, &matrix, &focalX);
if (type == kInside_ConicalType) {
- return FocalInside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX);
+ return FocalInside2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm,
+ focalX);
} else if(type == kEdge_ConicalType) {
set_matrix_edge_conical(shader, &matrix);
- return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm);
+ return Edge2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm);
} else {
- return FocalOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX);
+ return FocalOutside2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm,
+ focalX);
}
}
@@ -1373,12 +1392,14 @@
ConicalType type = set_matrix_circle_conical(shader, &matrix, &info);
if (type == kInside_ConicalType) {
- return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, info);
+ return CircleInside2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm,
+ info);
} else if (type == kEdge_ConicalType) {
set_matrix_edge_conical(shader, &matrix);
- return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm);
+ return Edge2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm);
} else {
- return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, info);
+ return CircleOutside2PtConicalEffect::Create(ctx, shaderDataManager, shader, matrix, tm,
+ info);
}
}