Move shader register setup to SkRasterPipelineBlitter.
authorMike Klein <mtklein@chromium.org>
Fri, 20 Jan 2017 20:11:54 +0000 (15:11 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Mon, 23 Jan 2017 20:00:23 +0000 (20:00 +0000)
commit319ba3d3a177498095c31696e0aec8b3af25f663
treebed59456eaf6d87a39eed79c33df5e3fe6921e8b
parent889176b3a3b5b71cc05c51dad3e7d2ddac610b7e
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>
13 files changed:
bench/SkRasterPipelineBench.cpp
src/core/SkColorSpaceXform.cpp
src/core/SkColorSpaceXform_A2B.cpp
src/core/SkConfig8888.cpp
src/core/SkOpts.h
src/core/SkPM4fPriv.h
src/core/SkRasterPipeline.cpp
src/core/SkRasterPipeline.h
src/core/SkRasterPipelineBlitter.cpp
src/images/transform_scanline.h
src/opts/SkRasterPipeline_opts.h
src/splicer/SkSplicer.cpp
tests/SkRasterPipelineTest.cpp