diff options
Diffstat (limited to 'src/effects/gradients')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 31 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 2 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 5 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.h | 2 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.cpp | 5 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.h | 2 |
12 files changed, 40 insertions, 28 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index f4bde677dd..6d753a9508 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -12,7 +12,9 @@ #include "SkTwoPointConicalGradient.h" #include "SkSweepGradient.h" -SkGradientShaderBase::SkGradientShaderBase(const Descriptor& desc) { +SkGradientShaderBase::SkGradientShaderBase(const Descriptor& desc, const SkMatrix* localMatrix) + : INHERITED(localMatrix) +{ SkASSERT(desc.fCount > 1); fMapper = desc.fMapper; @@ -784,7 +786,8 @@ SkShader* SkGradientShader::CreateLinear(const SkPoint pts[2], const SkScalar pos[], int colorCount, SkShader::TileMode mode, SkUnitMapper* mapper, - uint32_t flags) { + uint32_t flags, + const SkMatrix* localMatrix) { if (NULL == pts || NULL == colors || colorCount < 1) { return NULL; } @@ -792,7 +795,7 @@ SkShader* SkGradientShader::CreateLinear(const SkPoint pts[2], SkGradientShaderBase::Descriptor desc; desc_init(&desc, colors, pos, colorCount, mode, mapper, flags); - return SkNEW_ARGS(SkLinearGradient, (pts, desc)); + return SkNEW_ARGS(SkLinearGradient, (pts, desc, localMatrix)); } SkShader* SkGradientShader::CreateRadial(const SkPoint& center, SkScalar radius, @@ -800,7 +803,8 @@ SkShader* SkGradientShader::CreateRadial(const SkPoint& center, SkScalar radius, const SkScalar pos[], int colorCount, SkShader::TileMode mode, SkUnitMapper* mapper, - uint32_t flags) { + uint32_t flags, + const SkMatrix* localMatrix) { if (radius <= 0 || NULL == colors || colorCount < 1) { return NULL; } @@ -808,7 +812,7 @@ SkShader* SkGradientShader::CreateRadial(const SkPoint& center, SkScalar radius, SkGradientShaderBase::Descriptor desc; desc_init(&desc, colors, pos, colorCount, mode, mapper, flags); - return SkNEW_ARGS(SkRadialGradient, (center, radius, desc)); + return SkNEW_ARGS(SkRadialGradient, (center, radius, desc, localMatrix)); } SkShader* SkGradientShader::CreateTwoPointRadial(const SkPoint& start, @@ -820,7 +824,8 @@ SkShader* SkGradientShader::CreateTwoPointRadial(const SkPoint& start, int colorCount, SkShader::TileMode mode, SkUnitMapper* mapper, - uint32_t flags) { + uint32_t flags, + const SkMatrix* localMatrix) { if (startRadius < 0 || endRadius < 0 || NULL == colors || colorCount < 1) { return NULL; } @@ -829,7 +834,7 @@ SkShader* SkGradientShader::CreateTwoPointRadial(const SkPoint& start, SkGradientShaderBase::Descriptor desc; desc_init(&desc, colors, pos, colorCount, mode, mapper, flags); return SkNEW_ARGS(SkTwoPointRadialGradient, - (start, startRadius, end, endRadius, desc)); + (start, startRadius, end, endRadius, desc, localMatrix)); } SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, @@ -841,7 +846,8 @@ SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, int colorCount, SkShader::TileMode mode, SkUnitMapper* mapper, - uint32_t flags) { + uint32_t flags, + const SkMatrix* localMatrix) { if (startRadius < 0 || endRadius < 0 || NULL == colors || colorCount < 1) { return NULL; } @@ -858,7 +864,7 @@ SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, if (!flipGradient) { desc_init(&desc, colors, pos, colorCount, mode, mapper, flags); return SkNEW_ARGS(SkTwoPointConicalGradient, - (start, startRadius, end, endRadius, flipGradient, desc)); + (start, startRadius, end, endRadius, flipGradient, desc, localMatrix)); } else { SkAutoSTArray<8, SkColor> colorsNew(colorCount); SkAutoSTArray<8, SkScalar> posNew(colorCount); @@ -876,7 +882,7 @@ SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, } return SkNEW_ARGS(SkTwoPointConicalGradient, - (end, endRadius, start, startRadius, flipGradient, desc)); + (end, endRadius, start, startRadius, flipGradient, desc, localMatrix)); } } @@ -884,7 +890,8 @@ SkShader* SkGradientShader::CreateSweep(SkScalar cx, SkScalar cy, const SkColor colors[], const SkScalar pos[], int colorCount, SkUnitMapper* mapper, - uint32_t flags) { + uint32_t flags, + const SkMatrix* localMatrix) { if (NULL == colors || colorCount < 1) { return NULL; } @@ -892,7 +899,7 @@ SkShader* SkGradientShader::CreateSweep(SkScalar cx, SkScalar cy, SkGradientShaderBase::Descriptor desc; desc_init(&desc, colors, pos, colorCount, SkShader::kClamp_TileMode, mapper, flags); - return SkNEW_ARGS(SkSweepGradient, (cx, cy, desc)); + return SkNEW_ARGS(SkSweepGradient, (cx, cy, desc, localMatrix)); } SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkGradientShader) diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index 5dec665ea1..c1e253fd4a 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -99,7 +99,7 @@ public: }; public: - SkGradientShaderBase(const Descriptor& desc); + SkGradientShaderBase(const Descriptor& desc, const SkMatrix* localMatrix); virtual ~SkGradientShaderBase(); // The cache is initialized on-demand when getCache16/32 is called. diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index e660d7cd2d..70bbbf3b60 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -52,8 +52,9 @@ static void pts_to_unit_matrix(const SkPoint pts[2], SkMatrix* matrix) { /////////////////////////////////////////////////////////////////////////////// -SkLinearGradient::SkLinearGradient(const SkPoint pts[2], const Descriptor& desc) - : SkGradientShaderBase(desc) +SkLinearGradient::SkLinearGradient(const SkPoint pts[2], const Descriptor& desc, + const SkMatrix* localMatrix) + : SkGradientShaderBase(desc, localMatrix) , fStart(pts[0]) , fEnd(pts[1]) { pts_to_unit_matrix(pts, &fPtsToUnit); diff --git a/src/effects/gradients/SkLinearGradient.h b/src/effects/gradients/SkLinearGradient.h index 8d806672f8..699d76ed98 100644 --- a/src/effects/gradients/SkLinearGradient.h +++ b/src/effects/gradients/SkLinearGradient.h @@ -13,7 +13,7 @@ class SkLinearGradient : public SkGradientShaderBase { public: - SkLinearGradient(const SkPoint pts[2], const Descriptor&); + SkLinearGradient(const SkPoint pts[2], const Descriptor&, const SkMatrix* localMatrix); virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&, const SkMatrix&, void* storage) const SK_OVERRIDE; diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index bc2ea3b92b..f13d55c6e0 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -146,8 +146,8 @@ void shadeSpan16_radial_repeat(SkScalar fx, SkScalar dx, SkScalar fy, SkScalar d ///////////////////////////////////////////////////////////////////// SkRadialGradient::SkRadialGradient(const SkPoint& center, SkScalar radius, - const Descriptor& desc) - : SkGradientShaderBase(desc), + const Descriptor& desc, const SkMatrix* localMatrix) + : SkGradientShaderBase(desc, localMatrix), fCenter(center), fRadius(radius) { diff --git a/src/effects/gradients/SkRadialGradient.h b/src/effects/gradients/SkRadialGradient.h index a3d04b1aaf..7aafe2d153 100644 --- a/src/effects/gradients/SkRadialGradient.h +++ b/src/effects/gradients/SkRadialGradient.h @@ -13,7 +13,8 @@ class SkRadialGradient : public SkGradientShaderBase { public: - SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&); + SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&, + const SkMatrix* localMatrix); virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&, const SkMatrix&, void* storage) const SK_OVERRIDE; diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 6dff1e71cd..a65631c677 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -9,8 +9,8 @@ #include "SkSweepGradient.h" SkSweepGradient::SkSweepGradient(SkScalar cx, SkScalar cy, - const Descriptor& desc) - : SkGradientShaderBase(desc) + const Descriptor& desc, const SkMatrix* localMatrix) + : SkGradientShaderBase(desc, localMatrix) , fCenter(SkPoint::Make(cx, cy)) { fPtsToUnit.setTranslate(-cx, -cy); diff --git a/src/effects/gradients/SkSweepGradient.h b/src/effects/gradients/SkSweepGradient.h index 9998ed16a7..15c5b634ae 100644 --- a/src/effects/gradients/SkSweepGradient.h +++ b/src/effects/gradients/SkSweepGradient.h @@ -13,7 +13,8 @@ class SkSweepGradient : public SkGradientShaderBase { public: - SkSweepGradient(SkScalar cx, SkScalar cy, const Descriptor&); + SkSweepGradient(SkScalar cx, SkScalar cy, const Descriptor&, + const SkMatrix* localMatrix); virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&, const SkMatrix&, void* storage) const SK_OVERRIDE; diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp index b7aba827bb..9d1f8f1a82 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp @@ -197,8 +197,9 @@ void SkTwoPointConicalGradient::init() { SkTwoPointConicalGradient::SkTwoPointConicalGradient( const SkPoint& start, SkScalar startRadius, const SkPoint& end, SkScalar endRadius, - bool flippedGrad, const Descriptor& desc) - : SkGradientShaderBase(desc), + bool flippedGrad, const Descriptor& desc, + const SkMatrix* localMatrix) + : SkGradientShaderBase(desc, localMatrix), fCenter1(start), fCenter2(end), fRadius1(startRadius), diff --git a/src/effects/gradients/SkTwoPointConicalGradient.h b/src/effects/gradients/SkTwoPointConicalGradient.h index 80aa6fa693..13ce3eaf26 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.h +++ b/src/effects/gradients/SkTwoPointConicalGradient.h @@ -44,7 +44,8 @@ class SkTwoPointConicalGradient : public SkGradientShaderBase { public: SkTwoPointConicalGradient(const SkPoint& start, SkScalar startRadius, const SkPoint& end, SkScalar endRadius, - bool flippedGrad, const Descriptor&); + bool flippedGrad, const Descriptor&, + const SkMatrix* localMatrix); virtual SkShader::Context* createContext(const SkBitmap&, const SkPaint&, const SkMatrix&, diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index a598c6e0e3..41e577fbd0 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -170,8 +170,8 @@ void shadeSpan_twopoint_repeat(SkScalar fx, SkScalar dx, SkTwoPointRadialGradient::SkTwoPointRadialGradient( const SkPoint& start, SkScalar startRadius, const SkPoint& end, SkScalar endRadius, - const Descriptor& desc) - : SkGradientShaderBase(desc), + const Descriptor& desc, const SkMatrix* localMatrix) + : SkGradientShaderBase(desc, localMatrix), fCenter1(start), fCenter2(end), fRadius1(startRadius), diff --git a/src/effects/gradients/SkTwoPointRadialGradient.h b/src/effects/gradients/SkTwoPointRadialGradient.h index 9ba89f2920..1b387e6896 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.h +++ b/src/effects/gradients/SkTwoPointRadialGradient.h @@ -15,7 +15,7 @@ class SkTwoPointRadialGradient : public SkGradientShaderBase { public: SkTwoPointRadialGradient(const SkPoint& start, SkScalar startRadius, const SkPoint& end, SkScalar endRadius, - const Descriptor&); + const Descriptor&, const SkMatrix* localMatrix); virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, |