Index: src/pdf/SkPDFDeviceFlattener.h |
diff --git a/src/pdf/SkPDFDeviceFlattener.h b/src/pdf/SkPDFDeviceFlattener.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f1047db3fc19ecd23652baa4394206331de5852f |
--- /dev/null |
+++ b/src/pdf/SkPDFDeviceFlattener.h |
@@ -0,0 +1,53 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkPDFDeviceFlattener_DEFINED |
+#define SkPDFDeviceFlattener_DEFINED |
+ |
+#include "SkPDFDevice.h" |
+ |
+ |
+/** \class SkPDFDeviceFlattener |
+ |
+ The PDF Device Flattener is used to flatten features without native support in PDF. |
+ For now, the only one implemented is Perspective. |
+ |
+ TODO(edisonn): Rename the class once we know all the things it will do. |
+*/ |
+class SkPDFDeviceFlattener : public SkPDFDevice { |
+private: |
+ typedef SkPDFDevice INHERITED; |
+ |
+ SK_API SkPDFDeviceFlattener(const SkSize& pageSize, const SkRect* trimBox = NULL); |
+ |
+public: |
+ SK_API virtual ~SkPDFDeviceFlattener(); |
+ |
+ virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode, |
+ size_t count, const SkPoint[], |
+ const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawRect(const SkDraw&, const SkRect& r, const SkPaint& paint); |
+ virtual void drawPath(const SkDraw&, const SkPath& origpath, |
+ const SkPaint& paint, const SkMatrix* prePathMatrix, |
+ bool pathIsMutable) SK_OVERRIDE; |
+ virtual void drawText(const SkDraw&, const void* text, size_t len, |
+ SkScalar x, SkScalar y, const SkPaint&) SK_OVERRIDE; |
+ virtual void drawPosText(const SkDraw&, const void* text, size_t len, |
+ const SkScalar pos[], SkScalar constY, |
+ int scalarsPerPos, const SkPaint&) SK_OVERRIDE; |
+ virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len, |
+ const SkPath& path, const SkMatrix* matrix, |
+ const SkPaint& paint) SK_OVERRIDE; |
+private: |
+ |
+ bool mustFlatten(const SkDraw& d) const; |
+ bool mustPathText(const SkDraw& d, const SkPaint& paint); |
+ |
+ friend class SkDocument_PDF; |
+}; |
+ |
+#endif // SkPDFDeviceFlattener_DEFINED |