Add an SKP to PDF rendered. test_pdfs.py will be hooked up in buildbot testing later.
Review URL: https://codereview.appspot.com/6610056
git-svn-id: http://skia.googlecode.com/svn/trunk@5880 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/PdfRenderer.h b/tools/PdfRenderer.h
new file mode 100644
index 0000000..bce6197
--- /dev/null
+++ b/tools/PdfRenderer.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef PdfRenderer_DEFINED
+#define PdfRenderer_DEFINED
+
+//
+// PdfRender takes a SkPicture and writes it to a PDF file.
+// An SkPicture can be built manually, or read from an SKP file.
+//
+
+#include "SkMath.h"
+#include "SkPicture.h"
+#include "SkTypes.h"
+#include "SkTDArray.h"
+#include "SkRefCnt.h"
+#include "SkString.h"
+
+class SkBitmap;
+class SkCanvas;
+class SkGLContext;
+class SkPDFDevice;
+
+namespace sk_tools {
+
+class PdfRenderer : public SkRefCnt {
+public:
+ virtual void init(SkPicture* pict);
+ virtual void setup() {}
+ virtual void render() = 0;
+ virtual void end();
+
+ PdfRenderer()
+ : fPicture(NULL)
+ , fPDFDevice(NULL)
+ {}
+
+ bool write(const SkString& path) const;
+
+protected:
+ SkCanvas* setupCanvas();
+ SkCanvas* setupCanvas(int width, int height);
+
+ SkAutoTUnref<SkCanvas> fCanvas;
+ SkPicture* fPicture;
+ SkPDFDevice* fPDFDevice;
+
+
+private:
+ typedef SkRefCnt INHERITED;
+};
+
+class SimplePdfRenderer : public PdfRenderer {
+public:
+ virtual void render() SK_OVERRIDE;
+
+private:
+ typedef PdfRenderer INHERITED;
+};
+
+}
+
+#endif // PdfRenderer_DEFINED