SkPDF: Add SkPDFCanvas to intercept some draw calls
Motivation: this simplifies implementation at the device level.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1812063002
Review URL: https://codereview.chromium.org/1812063002
diff --git a/src/pdf/SkPDFCanvas.h b/src/pdf/SkPDFCanvas.h
new file mode 100644
index 0000000..3a673e2
--- /dev/null
+++ b/src/pdf/SkPDFCanvas.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef SkPDFCanvas_DEFINED
+#define SkPDFCanvas_DEFINED
+
+#include "SkCanvas.h"
+
+class SkPDFDevice;
+
+class SkPDFCanvas : public SkCanvas {
+public:
+ SkPDFCanvas(const sk_sp<SkPDFDevice>&);
+ ~SkPDFCanvas();
+
+protected:
+ void onDrawBitmapNine(const SkBitmap&, const SkIRect&, const SkRect&,
+ const SkPaint*) override;
+
+ void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&,
+ const SkPaint*) override;
+
+ void onDrawImageRect(const SkImage*,
+ const SkRect*,
+ const SkRect&,
+ const SkPaint*,
+ SkCanvas::SrcRectConstraint) override;
+
+ void onDrawBitmapRect(const SkBitmap&,
+ const SkRect*,
+ const SkRect&,
+ const SkPaint*,
+ SkCanvas::SrcRectConstraint) override;
+};
+
+#endif // SkPDFCanvas_DEFINED