diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-12-13 22:16:30 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-12-13 22:16:30 +0000 |
commit | a641f3f18e5319773989812a888f3fad49e4f2ad (patch) | |
tree | d090e4695e6f7970db27bdac351b3dfcccb02ec2 /src/effects | |
parent | cbcef708914f3b5e9bb63ad3d87261378026e29b (diff) |
reland 6798 w/ fix for bitmap-as-mask pixel-locking
git-svn-id: http://skia.googlecode.com/svn/trunk@6806 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 2 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 13 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 15c751052c..5b2a60e944 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -213,6 +213,8 @@ bool SkGradientShaderBase::setContext(const SkBitmap& device, const SkMatrix& inverse = this->getTotalInverse(); if (!fDstToIndex.setConcat(fPtsToUnit, inverse)) { + // need to keep our set/end context calls balanced. + this->INHERITED::endContext(); return false; } diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index 792cf6640f..829d153d77 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -91,7 +91,6 @@ public: int colorCount, SkShader::TileMode mode, SkUnitMapper* mapper); virtual ~SkGradientShaderBase(); - // overrides virtual bool setContext(const SkBitmap&, const SkPaint&, const SkMatrix&) SK_OVERRIDE; virtual uint32_t getFlags() SK_OVERRIDE { return fFlags; } virtual bool isOpaque() const SK_OVERRIDE; diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index 71b31260da..9aa923b2db 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -292,16 +292,15 @@ void SkTwoPointRadialGradient::shadeSpan(int x, int y, SkPMColor* dstCParam, } } -bool SkTwoPointRadialGradient::setContext( - const SkBitmap& device, - const SkPaint& paint, - const SkMatrix& matrix){ - if (!this->INHERITED::setContext(device, paint, matrix)) { +bool SkTwoPointRadialGradient::setContext( const SkBitmap& device, + const SkPaint& paint, + const SkMatrix& matrix){ + // For now, we might have divided by zero, so detect that + if (0 == fDiffRadius) { return false; } - // For now, we might have divided by zero, so detect that - if (0 == fDiffRadius) { + if (!this->INHERITED::setContext(device, paint, matrix)) { return false; } |