| Index: src/pdf/SkPDFDevice.h
|
| diff --git a/src/pdf/SkPDFDevice.h b/src/pdf/SkPDFDevice.h
|
| index b214839f5a1c24055711475cd6aa613083fa1940..138ec19b5938e3edc73a2ba4e2cfdff14a559e62 100644
|
| --- a/src/pdf/SkPDFDevice.h
|
| +++ b/src/pdf/SkPDFDevice.h
|
| @@ -25,6 +25,7 @@
|
| class SkPDFArray;
|
| class SkPDFCanon;
|
| class SkPDFDevice;
|
| +class SkPDFDocument;
|
| class SkPDFDict;
|
| class SkPDFFont;
|
| class SkPDFFormXObject;
|
| @@ -59,20 +60,23 @@ public:
|
| * while rendering, and it would be slower to be processed
|
| * or sent online or to printer. A good choice is
|
| * SK_ScalarDefaultRasterDPI(72.0f).
|
| - * @param SkPDFCanon. Should be non-null, and shared by all
|
| - * devices in a document.
|
| + * @param SkPDFDocument. A non-null pointer back to the
|
| + * document. The document is repsonsible for
|
| + * de-duplicating across pages (via the SkPDFCanon) and
|
| + * for early serializing of large immutable objects, such
|
| + * as images (via SkPDFDocument::serialize()).
|
| */
|
| static SkPDFDevice* Create(SkISize pageSize,
|
| SkScalar rasterDpi,
|
| - SkPDFCanon* canon) {
|
| - return new SkPDFDevice(pageSize, rasterDpi, canon, true);
|
| + SkPDFDocument* doc) {
|
| + return new SkPDFDevice(pageSize, rasterDpi, doc, true);
|
| }
|
|
|
| /** Create a PDF drawing context without fipping the y-axis. */
|
| static SkPDFDevice* CreateUnflipped(SkISize pageSize,
|
| SkScalar rasterDpi,
|
| - SkPDFCanon* canon) {
|
| - return new SkPDFDevice(pageSize, rasterDpi, canon, false);
|
| + SkPDFDocument* doc) {
|
| + return new SkPDFDevice(pageSize, rasterDpi, doc, false);
|
| }
|
|
|
| virtual ~SkPDFDevice();
|
| @@ -184,7 +188,7 @@ public:
|
| return *(fFontGlyphUsage.get());
|
| }
|
|
|
| - SkPDFCanon* getCanon() const { return fCanon; }
|
| + SkPDFCanon* getCanon() const;
|
|
|
| protected:
|
| const SkBitmap& onAccessBitmap() override {
|
| @@ -261,12 +265,12 @@ private:
|
|
|
| SkBitmap fLegacyBitmap;
|
|
|
| - SkPDFCanon* fCanon; // Owned by SkDocument_PDF
|
| + SkPDFDocument* fDocument;
|
| ////////////////////////////////////////////////////////////////////////////
|
|
|
| SkPDFDevice(SkISize pageSize,
|
| SkScalar rasterDpi,
|
| - SkPDFCanon* canon,
|
| + SkPDFDocument* doc,
|
| bool flip);
|
|
|
| ContentEntry* getLastContentEntry();
|
|
|