aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/gradients/SkTwoPointConicalGradient.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2014-12-10 10:29:19 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-10 10:29:19 -0800
commitcc695fee81613dc92746c1c6bb27f45cfc6ce73e (patch)
tree965f9657a0abd991f114f25369c527bddd98b8f1 /src/effects/gradients/SkTwoPointConicalGradient.cpp
parent6cfce1b7b4ad546b02823a1a0bbbda2c17b688f5 (diff)
Gradient shaders: make fPtsToUnit const, pre-cache getType().
This prevents races when calling fPtsToUnit.getType() from multiple threads. This introduces a small amount of redundant code in SkTwoPointRadialGradient, but it's probably optimized together into no extra run-time work. BUG=437511 Review URL: https://codereview.chromium.org/793763003
Diffstat (limited to 'src/effects/gradients/SkTwoPointConicalGradient.cpp')
-rw-r--r--src/effects/gradients/SkTwoPointConicalGradient.cpp9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp
index 2fc848e109..94751a89c6 100644
--- a/src/effects/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp
@@ -186,18 +186,13 @@ static void twopoint_mirror(TwoPtRadialContext* rec, SkPMColor* SK_RESTRICT dstC
}
}
-void SkTwoPointConicalGradient::init() {
- fRec.init(fCenter1, fRadius1, fCenter2, fRadius2, fFlippedGrad);
- fPtsToUnit.reset();
-}
-
/////////////////////////////////////////////////////////////////////
SkTwoPointConicalGradient::SkTwoPointConicalGradient(
const SkPoint& start, SkScalar startRadius,
const SkPoint& end, SkScalar endRadius,
bool flippedGrad, const Descriptor& desc)
- : SkGradientShaderBase(desc)
+ : SkGradientShaderBase(desc, SkMatrix::I())
, fCenter1(start)
, fCenter2(end)
, fRadius1(startRadius)
@@ -206,7 +201,7 @@ SkTwoPointConicalGradient::SkTwoPointConicalGradient(
{
// this is degenerate, and should be caught by our caller
SkASSERT(fCenter1 != fCenter2 || fRadius1 != fRadius2);
- this->init();
+ fRec.init(fCenter1, fRadius1, fCenter2, fRadius2, fFlippedGrad);
}
bool SkTwoPointConicalGradient::isOpaque() const {