diff options
author | Mike Reed <reed@google.com> | 2017-08-29 14:58:19 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-29 20:10:31 +0000 |
commit | 1d8c42eb903b66035ecf4d45b03dfeb1ad07b957 (patch) | |
tree | bddb7925865421ff762ae7e458ae3c24b6be477e /src/shaders/gradients/SkGradientShader.cpp | |
parent | 8b0f265f70703fa96c6d9011b1d8440e60d63632 (diff) |
fold params into StageRec
pre-CL before trying to add a hint-rect field to allow shaders to "optimize"
their stages for a given restriction in device space
- e.g. if the shader's intrinsic domain is contained, it won't need to tile/clamp
Bug: skia:
Change-Id: Ia2da557691da25f31e4b9e3f53c3bc6709b89083
Reviewed-on: https://skia-review.googlesource.com/40224
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/shaders/gradients/SkGradientShader.cpp')
-rw-r--r-- | src/shaders/gradients/SkGradientShader.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp index 1b24ef9ba3..4eb68c9f45 100644 --- a/src/shaders/gradients/SkGradientShader.cpp +++ b/src/shaders/gradients/SkGradientShader.cpp @@ -364,14 +364,13 @@ static void init_stop_pos( add_stop_color(ctx, stop, Fs, Bs); } -bool SkGradientShaderBase::onAppendStages(SkRasterPipeline* p, - SkColorSpace* dstCS, - SkArenaAlloc* alloc, - const SkMatrix& ctm, - const SkPaint& paint, - const SkMatrix* localM) const { +bool SkGradientShaderBase::onAppendStages(const StageRec& rec) const { + SkRasterPipeline* p = rec.fPipeline; + SkArenaAlloc* alloc = rec.fAlloc; + SkColorSpace* dstCS = rec.fDstCS; + SkMatrix matrix; - if (!this->computeTotalInverse(ctm, localM, &matrix)) { + if (!this->computeTotalInverse(rec.fCTM, rec.fLocalM, &matrix)) { return false; } matrix.postConcat(fPtsToUnit); @@ -405,7 +404,7 @@ bool SkGradientShaderBase::onAppendStages(SkRasterPipeline* p, // The two-stop case with stops at 0 and 1. if (fColorCount == 2 && fOrigPos == nullptr) { const SkPM4f c_l = prepareColor(0), - c_r = prepareColor(1); + c_r = prepareColor(1); // See F and B below. auto* f_and_b = alloc->makeArrayDefault<SkPM4f>(2); |