Chromium Code Reviews| Index: src/pdf/SkPDFDocument.h |
| diff --git a/src/pdf/SkPDFDocument.h b/src/pdf/SkPDFDocument.h |
| index 8ed76778fe91b8fb79f466967bf50af9f56d5e0d..1c0d940330b0bb6c52383806bc6ece09c9a1aa73 100644 |
| --- a/src/pdf/SkPDFDocument.h |
| +++ b/src/pdf/SkPDFDocument.h |
| @@ -8,6 +8,7 @@ |
| #define SkPDFDocument_DEFINED |
| #include "SkDocument.h" |
| +#include "SkPDFMetadata.h" |
|
tomhudson
2016/03/21 15:55:12
You also need to #include SkPDFTypes.h here to get
hal.canary
2016/03/21 18:49:18
Done.
|
| sk_sp<SkDocument> SkPDFMakeDocument( |
| SkWStream* stream, |
| @@ -15,4 +16,48 @@ sk_sp<SkDocument> SkPDFMakeDocument( |
| SkScalar rasterDpi, |
| SkPixelSerializer* jpegEncoder); |
| +// Logically part of SkPDFDocument (like SkPDFCanon), but |
|
djsollen
2016/03/16 12:41:49
but what?
hal.canary
2016/03/21 18:49:18
Done.
|
| +struct SkPDFObjectSerializer : SkNoncopyable { |
| + SkPDFObjNumMap fObjNumMap; |
| + SkPDFSubstituteMap fSubstituteMap; |
| + SkTDArray<int32_t> fOffsets; |
| + sk_sp<SkPDFObject> fInfoDict; |
| + size_t fBaseOffset; |
| + int32_t fNextToBeSerialized; // index in fObjNumMap |
| + |
| + SkPDFObjectSerializer(); |
| + void addObjectRecursively(const sk_sp<SkPDFObject>&); |
| + void serializeHeader(SkWStream*, const SkPDFMetadata&); |
| + void serializeObjects(SkWStream*); |
| + void serializeFooter(SkWStream*, const sk_sp<SkPDFObject>, sk_sp<SkPDFObject>); |
| + int32_t offset(SkWStream*); |
| +}; |
| + |
| +class SkPDFDocument : public SkDocument { |
|
tomhudson
2016/03/21 15:55:12
This is an implementation detail of SkDocument, bu
hal.canary
2016/03/21 19:40:08
/** Concrete implementation of SkDocument that cre
|
| +public: |
| + SkPDFDocument(SkWStream*, |
| + void (*)(SkWStream*, bool), |
| + SkScalar, |
| + SkPixelSerializer*); |
| + virtual ~SkPDFDocument(); |
| + SkCanvas* onBeginPage(SkScalar, SkScalar, const SkRect&) override; |
| + void onEndPage() override; |
| + bool onClose(SkWStream*) override; |
| + void onAbort() override; |
| + void setMetadata(const SkDocument::Attribute[], |
| + int, |
| + const SkTime::DateTime*, |
| + const SkTime::DateTime*) override; |
| + void serialize(const sk_sp<SkPDFObject>&); |
| + SkPDFCanon* canon() { return &fCanon; } |
| + |
| +private: |
| + SkPDFObjectSerializer fObjectSerializer; |
| + SkPDFCanon fCanon; |
| + SkTArray<sk_sp<const SkPDFDevice>> fPageDevices; |
| + sk_sp<SkCanvas> fCanvas; |
| + SkScalar fRasterDpi; |
| + SkPDFMetadata fMetadata; |
| +}; |
| + |
| #endif // SkPDFDocument_DEFINED |