diff options
author | Mike Klein <mtklein@chromium.org> | 2017-01-20 15:11:54 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-23 20:00:23 +0000 |
commit | 319ba3d3a177498095c31696e0aec8b3af25f663 (patch) | |
tree | bed59456eaf6d87a39eed79c33df5e3fe6921e8b /src/core/SkRasterPipeline.cpp | |
parent | 889176b3a3b5b71cc05c51dad3e7d2ddac610b7e (diff) |
Move shader register setup to SkRasterPipelineBlitter.
We've been seeding the initial values of our registers to x+0.5,y+0.5,
1,0, 0,0,0,0 (useful values for shaders to start with) in all pipelines.
This CL changes that to do so only when blitting, and only when we have
a shader.
The nicest part of this change is that SkRasterPipeline itself no longer
needs to have a concept of y, or what x means. It just marches x
through [x,x+n), and the blitter handles y and layers the meaning of
"dst x coordinate" onto x.
This ought to make SkSplicer a little easier to work with too.
dm --src gm --config f16 srgb 565 all draws the same.
Change-Id: I69d8c1cc14a06e5dfdd6a7493364f43a18f8dec5
Reviewed-on: https://skia-review.googlesource.com/7353
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkRasterPipeline.cpp')
-rw-r--r-- | src/core/SkRasterPipeline.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/SkRasterPipeline.cpp b/src/core/SkRasterPipeline.cpp index 7c3536c39d..884a7cbc97 100644 --- a/src/core/SkRasterPipeline.cpp +++ b/src/core/SkRasterPipeline.cpp @@ -20,13 +20,13 @@ void SkRasterPipeline::extend(const SkRasterPipeline& src) { src.fStages.begin(), src.fStages.end()); } -void SkRasterPipeline::run(size_t x, size_t y, size_t n) const { +void SkRasterPipeline::run(size_t x, size_t n) const { if (!fStages.empty()) { - SkOpts::run_pipeline(x,y,n, fStages.data(), SkToInt(fStages.size())); + SkOpts::run_pipeline(x,n, fStages.data(), SkToInt(fStages.size())); } } -std::function<void(size_t, size_t, size_t)> SkRasterPipeline::compile() const { +std::function<void(size_t, size_t)> SkRasterPipeline::compile() const { #ifdef SK_RASTER_PIPELINE_HAS_JIT if (auto fn = this->jit()) { return fn; |