2011-10-31 04:48:54 +04:00
|
|
|
diff --git a/gfx/skia/src/effects/SkGradientShader.cpp b/gfx/skia/src/effects/SkGradientShader.cpp
|
|
|
|
--- a/gfx/skia/src/effects/SkGradientShader.cpp
|
|
|
|
+++ b/gfx/skia/src/effects/SkGradientShader.cpp
|
2012-01-19 08:48:35 +04:00
|
|
|
@@ -1665,17 +1665,20 @@ public:
|
2011-10-31 04:48:54 +04:00
|
|
|
}
|
|
|
|
return kRadial2_GradientType;
|
|
|
|
}
|
|
|
|
|
2012-01-19 08:48:35 +04:00
|
|
|
virtual void shadeSpan(int x, int y, SkPMColor* SK_RESTRICT dstC, int count) SK_OVERRIDE {
|
2011-10-31 04:48:54 +04:00
|
|
|
SkASSERT(count > 0);
|
|
|
|
|
|
|
|
// Zero difference between radii: fill with transparent black.
|
|
|
|
- if (fDiffRadius == 0) {
|
|
|
|
+ // TODO: Is removing this actually correct? Two circles with the
|
|
|
|
+ // same radius, but different centers doesn't sound like it
|
|
|
|
+ // should be cleared
|
|
|
|
+ if (fDiffRadius == 0 && fCenter1 == fCenter2) {
|
|
|
|
sk_bzero(dstC, count * sizeof(*dstC));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
SkMatrix::MapXYProc dstProc = fDstToIndexProc;
|
|
|
|
TileProc proc = fTileProc;
|
|
|
|
const SkPMColor* SK_RESTRICT cache = this->getCache32();
|
|
|
|
|
|
|
|
SkScalar foura = fA * 4;
|