patch from issue 886233004 at patchset 40001 (http://crrev.com/886233004#ps40001)
... with changes proposed in the review.
BUG=skia:
Review URL: https://codereview.chromium.org/894013002
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 1fdc9ed..48c572b 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -33,9 +33,9 @@
struct Sink {
virtual ~Sink() {}
- // You may write to either the bitmap or stream.
- virtual Error SK_WARN_UNUSED_RESULT draw(const Src&, SkBitmap*, SkWStream*) const
- = 0;
+ // You may write to either the bitmap or stream. If you write to log, we'll print that out.
+ virtual Error SK_WARN_UNUSED_RESULT draw(const Src&, SkBitmap*, SkWStream*, SkString* log)
+ const = 0;
// Sinks in the same enclave (except kAnyThread_Enclave) will run serially on the same thread.
virtual int enclave() const = 0;
@@ -90,7 +90,7 @@
public:
GPUSink(GrContextFactory::GLContextType, GrGLStandard, int samples, bool dfText, bool threaded);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE;
const char* fileExtension() const SK_OVERRIDE { return "png"; }
private:
@@ -105,7 +105,7 @@
public:
PDFSink();
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return kPDFSink_Enclave; }
const char* fileExtension() const SK_OVERRIDE { return "pdf"; }
};
@@ -114,7 +114,7 @@
public:
explicit RasterSink(SkColorType);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
const char* fileExtension() const SK_OVERRIDE { return "png"; }
private:
@@ -125,7 +125,7 @@
public:
SKPSink();
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
const char* fileExtension() const SK_OVERRIDE { return "skp"; }
};
@@ -134,7 +134,7 @@
public:
SVGSink();
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
const char* fileExtension() const SK_OVERRIDE { return "svg"; }
};
@@ -146,7 +146,7 @@
public:
ViaMatrix(SkMatrix, Sink*);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return fSink->enclave(); }
const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension(); }
private:
@@ -158,7 +158,7 @@
public:
explicit ViaPipe(Sink*);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return fSink->enclave(); }
const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension(); }
private:
@@ -169,7 +169,7 @@
public:
explicit ViaSerialization(Sink*);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return fSink->enclave(); }
const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension(); }
private:
@@ -180,7 +180,7 @@
public:
ViaTiles(int w, int h, SkBBHFactory*, Sink*);
- Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE;
+ Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
int enclave() const SK_OVERRIDE { return fSink->enclave(); }
const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension(); }
private:
@@ -191,7 +191,7 @@
class NullSink : public Sink {
public:
- Error draw(const Src& src, SkBitmap*, SkWStream* out) const SK_OVERRIDE {
+ Error draw(const Src& src, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE {
return src.draw(SkCreateNullCanvas());
}
int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }