Index: include/pdf/SkPDFDevice.h |
diff --git a/include/pdf/SkPDFDevice.h b/include/pdf/SkPDFDevice.h |
index 30ec2dc63078967c2e157ac2d02673f95d29179e..38895b40d9df66740d74803b7b828e8ac86aaf9b 100644 |
--- a/include/pdf/SkPDFDevice.h |
+++ b/include/pdf/SkPDFDevice.h |
@@ -11,6 +11,7 @@ |
#define SkPDFDevice_DEFINED |
#include "SkBitmapDevice.h" |
+#include "SkBitmap.h" |
#include "SkCanvas.h" |
#include "SkPaint.h" |
#include "SkPath.h" |
@@ -21,6 +22,7 @@ |
#include "SkTDArray.h" |
#include "SkTemplates.h" |
+class CanvasTestStep; |
class SkPDFArray; |
class SkPDFDevice; |
class SkPDFDict; |
@@ -63,7 +65,7 @@ public: |
* inverse scale+translate to accommodate the one that SkPDFDevice |
* always does. |
*/ |
- // TODO(vandebo): The sizes should be SkSize and not SkISize. |
+ // Deprecated, please use SkDocument::CreatePdf() instead. |
SK_API SkPDFDevice(const SkISize& pageSize, const SkISize& contentSize, |
const SkMatrix& initialTransform); |
SK_API virtual ~SkPDFDevice(); |
@@ -311,6 +313,51 @@ private: |
const SkMatrix& matrix); |
typedef SkBitmapDevice INHERITED; |
+ |
+ // TODO(edisonn): Only SkDocument_PDF and SkPDFImageShader should be able to create |
+ // an SkPDFDevice |
+ friend class SkDocument_PDF; |
+ friend class SkPDFImageShader; |
+}; |
+ |
+class SkPDFDeviceFlattener : public SkPDFDevice { |
reed1
2013/10/07 19:39:42
If there is no need to make this public, I think i
edisonn
2013/10/08 17:55:31
Done.
|
+private: |
+ typedef SkPDFDevice INHERITED; |
+ |
+ SK_API SkPDFDeviceFlattener(const SkSize& trimBox, const SkRect& mediaBox); |
+ |
+public: |
+ SK_API virtual ~SkPDFDeviceFlattener(); |
+ |
+ virtual void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE; |
+ 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; |
+ virtual void drawVertices(const SkDraw&, SkCanvas::VertexMode, |
+ int vertexCount, const SkPoint verts[], |
+ const SkPoint texs[], const SkColor colors[], |
+ SkXfermode* xmode, const uint16_t indices[], |
+ int indexCount, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y, |
+ const SkPaint&) SK_OVERRIDE; |
+private: |
+ |
+ bool mustFlatten(const SkDraw& d) const; |
+ bool mustPathText(const SkDraw& d, const SkPaint& paint); |
+ |
+ friend class SkDocument_PDF; |
}; |
#endif |