Home | History | Annotate | Download | only in gradients

Lines Matching full:shader

42 static void set_matrix_edge_conical(const SkTwoPointConicalGradient& shader,
46 const SkPoint& center1 = shader.getStartCenter();
47 const SkPoint& center2 = shader.getEndCenter();
66 const SkTwoPointConicalGradient& shader,
69 return new Edge2PtConicalEffect(ctx, shader, matrix, tm);
97 const SkTwoPointConicalGradient& shader,
100 : INHERITED(ctx, shader, matrix, tm),
101 fCenterX1(shader.getCenterX1()),
102 fRadius0(shader.getStartRadius()),
103 fDiffRadius(shader.getDiffRadius()){
105 // We should only be calling this shader if we are degenerate case with touching circles
111 (fRadius0 < kErrorTol ? shader.getEndRadius() * kEdgeErrorTol :
195 // If the circles are identical the factory will give us an empty shader.
210 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1,
214 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
318 static ConicalType set_matrix_focal_conical(const SkTwoPointConicalGradient& shader,
324 const SkPoint& focal = shader.getStartCenter();
325 const SkPoint& centerEnd = shader.getEndCenter();
326 SkScalar radius = shader.getEndRadius();
351 // stability trade off versus the linear approx used in the Edge Shader
380 const SkTwoPointConicalGradient& shader,
384 return new FocalOutside2PtConicalEffect(ctx, shader, matrix, tm, focalX);
409 const SkTwoPointConicalGradient& shader,
413 : INHERITED(ctx, shader, matrix, tm)
415 , fIsFlipped(shader.isFlippedGrad()) {
491 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1,
495 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
596 const SkTwoPointConicalGradient& shader,
600 return new FocalInside2PtConicalEffect(ctx, shader, matrix, tm, focalX);
625 const SkTwoPointConicalGradient& shader,
629 : INHERITED(ctx, shader, matrix, tm), fFocalX(focalX) {
696 // If the circles are identical the factory will give us an empty shader.
704 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1,
708 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
780 static ConicalType set_matrix_circle_conical(const SkTwoPointConicalGradient& shader,
784 const SkPoint& centerStart = shader.getStartCenter();
785 const SkPoint& centerEnd = shader.getEndCenter();
786 SkScalar radiusStart = shader.getStartRadius();
787 SkScalar radiusEnd = shader.getEndRadius();
806 // to the edge shader. kEdgeErrorTol = 5 * kErrorTol was picked after manual testing
807 // so that C = 1 / A is stable, and the linear approximation used in the Edge shader is
836 const SkTwoPointConicalGradient& shader,
840 return new CircleInside2PtConicalEffect(ctx, shader, matrix, tm, info);
869 const SkTwoPointConicalGradient& shader,
873 : INHERITED(ctx, shader, matrix, tm), fInfo(info) {
944 // If the circles are identical the factory will give us an empty shader.
952 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1,
956 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
1053 const SkTwoPointConicalGradient& shader,
1057 return new CircleOutside2PtConicalEffect(ctx, shader, matrix, tm, info);
1089 const SkTwoPointConicalGradient& shader,
1093 : INHERITED(ctx, shader, matrix, tm), fInfo(info) {
1095 if (shader.getStartRadius() != shader.getEndRadius()) {
1096 fTLimit = shader.getStartRadius() / (shader.getStartRadius() - shader.getEndRadius());
1101 fIsFlipped = shader.isFlippedGrad();
1185 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1,
1189 const GrFragmentProcessor* fp = shader->asFragmentProcessor(
1310 const SkTwoPointConicalGradient& shader,
1314 if (!shader.getLocalMatrix().invert(&matrix)) {
1325 if (shader.getStartRadius() < kErrorTol) {
1327 ConicalType type = set_matrix_focal_conical(shader, &matrix, &focalX);
1329 return FocalInside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX);
1331 set_matrix_edge_conical(shader, &matrix);
1332 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm);
1334 return FocalOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, focalX);
1339 ConicalType type = set_matrix_circle_conical(shader, &matrix, &info);
1342 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, info);
1344 set_matrix_edge_conical(shader, &matrix);
1345 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm);
1347 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, info);