aggressively refactor pipeline building in SkColorSpaceXform

This rewrites things into 5 distinct phases:
  1) load src
  2) linearize src
  3) gamut transform
  4) apply dst transfer function and premul
  5) store dst

In the existing code, steps 1+2 were really intertwined,
and we had all sorts of arbitrary restrictions on input
formats and output formats.  I've removed most of those.

This is guarded by SK_COLOR_SPACE_XFORM_LEGACY_PIPELINE
for Blink layout tests.  (The 35 diffs all look fine.)

Bug: skia:7114

Change-Id: Ib5f15d1ac3240a6ef202ba30acef660152beee82
Reviewed-on: https://skia-review.googlesource.com/55320
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
1 file changed