OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2010 The Android Open Source Project | 3 * Copyright 2010 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #ifndef SkPDFCatalog_DEFINED | 10 #ifndef SkPDFCatalog_DEFINED |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 * @param offset The byte offset in the output stream of this object. | 42 * @param offset The byte offset in the output stream of this object. |
43 */ | 43 */ |
44 void setFileOffset(SkPDFObject* obj, off_t offset); | 44 void setFileOffset(SkPDFObject* obj, off_t offset); |
45 | 45 |
46 /** Output the object number for the passed object. | 46 /** Output the object number for the passed object. |
47 * @param obj The object of interest. | 47 * @param obj The object of interest. |
48 * @param stream The writable output stream to send the output to. | 48 * @param stream The writable output stream to send the output to. |
49 */ | 49 */ |
50 void emitObjectNumber(SkWStream* stream, SkPDFObject* obj); | 50 void emitObjectNumber(SkWStream* stream, SkPDFObject* obj); |
51 | 51 |
52 /** Return the number of bytes that would be emitted for the passed | |
53 * object's object number. | |
54 * @param obj The object of interest | |
55 */ | |
56 size_t getObjectNumberSize(SkPDFObject* obj); | |
57 | |
58 /** Return the document flags in effect for this catalog/document. | 52 /** Return the document flags in effect for this catalog/document. |
59 */ | 53 */ |
60 SkPDFDocument::Flags getDocumentFlags() const { return fDocumentFlags; } | 54 SkPDFDocument::Flags getDocumentFlags() const { return fDocumentFlags; } |
61 | 55 |
62 /** Output the cross reference table for objects in the catalog. | 56 /** Output the cross reference table for objects in the catalog. |
63 * Returns the total number of objects. | 57 * Returns the total number of objects. |
64 * @param stream The writable output stream to send the output to. | 58 * @param stream The writable output stream to send the output to. |
65 * @param firstPage If true, include first page objects only, otherwise | 59 * @param firstPage If true, include first page objects only, otherwise |
66 * include all objects not on the first page. | 60 * include all objects not on the first page. |
67 */ | 61 */ |
68 int32_t emitXrefTable(SkWStream* stream, bool firstPage); | 62 int32_t emitXrefTable(SkWStream* stream, bool firstPage); |
69 | 63 |
70 /** Set substitute object for the passed object. | 64 /** Set substitute object for the passed object. |
71 */ | 65 */ |
72 void setSubstitute(SkPDFObject* original, SkPDFObject* substitute); | 66 void setSubstitute(SkPDFObject* original, SkPDFObject* substitute); |
73 | 67 |
74 /** Find and return any substitute object set for the passed object. If | 68 /** Find and return any substitute object set for the passed object. If |
75 * there is none, return the passed object. | 69 * there is none, return the passed object. |
76 */ | 70 */ |
77 SkPDFObject* getSubstituteObject(SkPDFObject* object); | 71 SkPDFObject* getSubstituteObject(SkPDFObject* object); |
78 | 72 |
79 /** get the resources of substitute objects. | |
80 */ | |
81 SkTSet<SkPDFObject*>* getSubstituteList(bool firstPage); | |
82 | |
83 private: | 73 private: |
84 struct Rec { | 74 struct Rec { |
85 Rec(SkPDFObject* object, bool onFirstPage) | 75 Rec(SkPDFObject* object, bool onFirstPage) |
86 : fObject(object), | 76 : fObject(object), |
87 fFileOffset(0), | 77 fFileOffset(0), |
88 fObjNumAssigned(false), | 78 fObjNumAssigned(false), |
89 fOnFirstPage(onFirstPage) { | 79 fOnFirstPage(onFirstPage) { |
90 } | 80 } |
91 SkPDFObject* fObject; | 81 SkPDFObject* fObject; |
92 off_t fFileOffset; | 82 off_t fFileOffset; |
(...skipping 19 matching lines...) Expand all Loading... |
112 | 102 |
113 // Number of objects on the first page. | 103 // Number of objects on the first page. |
114 uint32_t fFirstPageCount; | 104 uint32_t fFirstPageCount; |
115 // Next object number to assign (on page > 1). | 105 // Next object number to assign (on page > 1). |
116 uint32_t fNextObjNum; | 106 uint32_t fNextObjNum; |
117 // Next object number to assign on the first page. | 107 // Next object number to assign on the first page. |
118 uint32_t fNextFirstPageObjNum; | 108 uint32_t fNextFirstPageObjNum; |
119 | 109 |
120 SkPDFDocument::Flags fDocumentFlags; | 110 SkPDFDocument::Flags fDocumentFlags; |
121 | 111 |
122 int findObjectIndex(SkPDFObject* obj) const; | 112 int findObjectIndex(SkPDFObject* obj); |
123 | 113 |
124 int assignObjNum(SkPDFObject* obj); | 114 int assignObjNum(SkPDFObject* obj); |
125 }; | 115 }; |
126 | 116 |
127 #endif | 117 #endif |
OLD | NEW |