SkColorSpaceXformCanvas

TODO:
  images
  shaders
  color filters
  image filters
  a couple stray color arrays

Change-Id: Ib91639bb0a6a00af737dd5186180011fe5120860
Reviewed-on: https://skia-review.googlesource.com/9529
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index d4fe29d..c973e3b 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -349,7 +349,7 @@
 class PipeSink : public Sink {
 public:
     PipeSink();
-    
+
     Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
     const char* fileExtension() const override { return "skpipe"; }
     SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, SinkFlags::kDirect }; }
@@ -494,6 +494,14 @@
     Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
 };
 
+class ViaCSXform : public Via {
+public:
+    explicit ViaCSXform(Sink*, sk_sp<SkColorSpace>);
+    Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
+private:
+    sk_sp<SkColorSpace> fCS;
+};
+
 }  // namespace DM
 
 #endif//DMSrcSink_DEFINED