add pipecanvas
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2201323003
Review-Url: https://codereview.chromium.org/2201323003
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 0e11633..dfc4955 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -333,6 +333,15 @@
SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, SinkFlags::kDirect }; }
};
+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 }; }
+};
+
class RasterSink : public Sink {
public:
explicit RasterSink(SkColorType, sk_sp<SkColorSpace> = nullptr);
@@ -408,6 +417,12 @@
Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
};
+class ViaPipe : public Via {
+public:
+ explicit ViaPipe(Sink* sink) : Via(sink) {}
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
+};
+
class ViaDefer : public Via {
public:
explicit ViaDefer(Sink* sink) : Via(sink) {}