From b8b6253df6e60e5cce71ae584921bd9da35c1b93 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Fri, 23 Feb 2018 14:13:36 +0800 Subject: Add threaded backend sink to DM. Fix a scheduler bug. The bug is spotted by the new sink. I'd expect more bugs to be revealed and fixed using the new sink. Bug: skia: Change-Id: I6b0c9267079fbd6149004f0ecd55ddb179702588 Reviewed-on: https://skia-review.googlesource.com/109720 Reviewed-by: Herb Derby Commit-Queue: Yuqian Li --- dm/DMSrcSink.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'dm/DMSrcSink.h') diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 1ad2eca79f..6cc5df690f 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -424,11 +424,22 @@ public: Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; const char* fileExtension() const override { return "png"; } SinkFlags flags() const override { return SinkFlags{ SinkFlags::kRaster, SinkFlags::kDirect }; } -private: +protected: + void allocPixels(const Src& src, SkBitmap*) const; + SkColorType fColorType; sk_sp fColorSpace; }; +class ThreadedSink : public RasterSink { +public: + explicit ThreadedSink(SkColorType, sk_sp = nullptr); + Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; + +private: + std::unique_ptr fExecutor; +}; + class SKPSink : public Sink { public: SKPSink(); -- cgit v1.2.3