diff options
Diffstat (limited to 'src/shaders/gradients')
-rw-r--r-- | src/shaders/gradients/SkGradientShader.cpp | 5 | ||||
-rw-r--r-- | src/shaders/gradients/SkGradientShaderPriv.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp index 8536dd82eb..aa44ae6f3a 100644 --- a/src/shaders/gradients/SkGradientShader.cpp +++ b/src/shaders/gradients/SkGradientShader.cpp @@ -1294,8 +1294,7 @@ GrGradientEffect::GrGradientEffect(ClassID classID, const CreateArgs& args, bool fTextureSampler.reset(std::move(proxy), samplerState); fYCoord = SK_ScalarHalf; } - - this->addTextureSampler(&fTextureSampler); + this->setTextureSamplerCnt(1); } this->addCoordTransform(&fCoordTransform); @@ -1316,7 +1315,7 @@ GrGradientEffect::GrGradientEffect(const GrGradientEffect& that) , fPremulType(that.fPremulType) { this->addCoordTransform(&fCoordTransform); if (fStrategy == InterpolationStrategy::kTexture) { - this->addTextureSampler(&fTextureSampler); + this->setTextureSamplerCnt(1); } if (this->useAtlas()) { fAtlas->lockRow(fRow); diff --git a/src/shaders/gradients/SkGradientShaderPriv.h b/src/shaders/gradients/SkGradientShaderPriv.h index 0f3e73603a..6aa5da2457 100644 --- a/src/shaders/gradients/SkGradientShaderPriv.h +++ b/src/shaders/gradients/SkGradientShaderPriv.h @@ -302,6 +302,8 @@ private: void addInterval(const SkGradientShaderBase&, const SkColor4f* colors, size_t idx0, size_t idx1); + const TextureSampler& onTextureSampler(int i) const override { return fTextureSampler; } + static OptimizationFlags OptFlags(bool isOpaque); // Interpolation intervals, encoded as 4f tuples of (scale, bias) |