| Index: src/effects/gradients/SkTwoPointConicalGradient.cpp
|
| diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp
|
| index ffc64572862f33272da0c65cb6336be033507ee0..1e6a0d81268a28c30e630a3be37039510e761aea 100644
|
| --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp
|
| +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp
|
| @@ -95,8 +95,8 @@ void TwoPtRadial::setup(SkScalar fx, SkScalar fy, SkScalar dfx, SkScalar dfy) {
|
| SkFixed TwoPtRadial::nextT() {
|
| float roots[2];
|
|
|
| - float C = sqr(fRelX) + sqr(fRelY) - fRec.fRadius2;
|
| - int countRoots = find_quad_roots(fRec.fA, fB, C, roots, fRec.fFlipped);
|
| + float C = sqr(fRelX) + sqr(fRelY) - fRadius2;
|
| + int countRoots = find_quad_roots(fA, fB, C, roots, fFlipped);
|
|
|
| fRelX += fIncX;
|
| fRelY += fIncY;
|
| @@ -306,14 +306,19 @@ SkShader::BitmapType SkTwoPointConicalGradient::asABitmap(
|
| return kTwoPointConical_BitmapType;
|
| }
|
|
|
| +// Returns the original non-sorted version of the gradient
|
| SkShader::GradientType SkTwoPointConicalGradient::asAGradient(
|
| GradientInfo* info) const {
|
| if (info) {
|
| - commonAsAGradient(info);
|
| + commonAsAGradient(info, fFlippedGrad);
|
| info->fPoint[0] = fCenter1;
|
| info->fPoint[1] = fCenter2;
|
| info->fRadius[0] = fRadius1;
|
| info->fRadius[1] = fRadius2;
|
| + if (fFlippedGrad) {
|
| + SkTSwap(info->fPoint[0], info->fPoint[1]);
|
| + SkTSwap(info->fRadius[0], info->fRadius[1]);
|
| + }
|
| }
|
| return kConical_GradientType;
|
| }
|
|
|