Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index e67d4355e4ca4caf4f7605422b2bd73f8b91a3ac..1cf647fe2a7fa13823a1531326ec7afb2addbdc6 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -194,12 +194,8 @@ Error GPUSink::draw(const Src& src, SkBitmap* dst, SkWStream*, SkString* log) co |
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
-PDFSink::PDFSink() {} |
- |
-Error PDFSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const { |
- // Print the given DM:Src to a PDF, breaking on 8.5x11 pages. |
- SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(dst)); |
- |
+static Error draw_skdocument(const Src& src, SkDocument* doc, SkWStream* dst) { |
+ // Print the given DM:Src to a document, breaking on 8.5x11 pages. |
int width = src.size().width(), |
height = src.size().height(); |
@@ -231,6 +227,23 @@ Error PDFSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const |
return ""; |
} |
+PDFSink::PDFSink() {} |
+ |
+Error PDFSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const { |
+ SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(dst)); |
+ return draw_skdocument(src, doc.get(), dst); |
+} |
+ |
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
+ |
+#ifdef SK_SUPPORT_XPS |
+XPSSink::XPSSink() {} |
+ |
+Error XPSSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const { |
+ SkAutoTUnref<SkDocument> doc(SkDocument::CreateXPS(dst)); |
+ return draw_skdocument(src, doc.get(), dst); |
+} |
+#endif // SK_SUPPORT_XPS |
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
SKPSink::SKPSink() {} |