Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: src/pdf/SkPDFCatalog.h

Issue 846023003: In SkPDFDocument::emitPDF(), stop pre-calculating file offsets. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: nit: space between functions Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/pdf/SkPDFCatalog.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 19 matching lines...) Expand all
30 ~SkPDFCatalog(); 30 ~SkPDFCatalog();
31 31
32 /** Add the passed object to the catalog. Refs obj. 32 /** Add the passed object to the catalog. Refs obj.
33 * @param obj The object to add. 33 * @param obj The object to add.
34 * @param onFirstPage Is the object on the first page. 34 * @param onFirstPage Is the object on the first page.
35 * @return The obj argument is returned. 35 * @return The obj argument is returned.
36 */ 36 */
37 SkPDFObject* addObject(SkPDFObject* obj, bool onFirstPage); 37 SkPDFObject* addObject(SkPDFObject* obj, bool onFirstPage);
38 38
39 /** Inform the catalog of the object's position in the final stream. 39 /** Inform the catalog of the object's position in the final stream.
40 * The object should already have been added to the catalog. Returns 40 * The object should already have been added to the catalog.
41 * the object's size.
42 * @param obj The object to add. 41 * @param obj The object to add.
43 * @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.
44 */ 43 */
45 size_t setFileOffset(SkPDFObject* obj, off_t offset); 44 void setFileOffset(SkPDFObject* obj, off_t offset);
46 45
47 /** Output the object number for the passed object. 46 /** Output the object number for the passed object.
48 * @param obj The object of interest. 47 * @param obj The object of interest.
49 * @param stream The writable output stream to send the output to. 48 * @param stream The writable output stream to send the output to.
50 */ 49 */
51 void emitObjectNumber(SkWStream* stream, SkPDFObject* obj); 50 void emitObjectNumber(SkWStream* stream, SkPDFObject* obj);
52 51
53 /** Return the number of bytes that would be emitted for the passed 52 /** Return the number of bytes that would be emitted for the passed
54 * object's object number. 53 * object's object number.
55 * @param obj The object of interest 54 * @param obj The object of interest
(...skipping 14 matching lines...) Expand all
70 69
71 /** Set substitute object for the passed object. 70 /** Set substitute object for the passed object.
72 */ 71 */
73 void setSubstitute(SkPDFObject* original, SkPDFObject* substitute); 72 void setSubstitute(SkPDFObject* original, SkPDFObject* substitute);
74 73
75 /** Find and return any substitute object set for the passed object. If 74 /** Find and return any substitute object set for the passed object. If
76 * there is none, return the passed object. 75 * there is none, return the passed object.
77 */ 76 */
78 SkPDFObject* getSubstituteObject(SkPDFObject* object); 77 SkPDFObject* getSubstituteObject(SkPDFObject* object);
79 78
80 /** Set file offsets for the resources of substitute objects. 79 /** get the resources of substitute objects.
81 * @param fileOffset Accumulated offset of current document.
82 * @param firstPage Indicate whether this is for the first page only.
83 * @return Total size of resources of substitute objects.
84 */ 80 */
85 off_t setSubstituteResourcesOffsets(off_t fileOffset, bool firstPage); 81 SkTSet<SkPDFObject*>* getSubstituteList(bool firstPage);
86
87 /** Emit the resources of substitute objects.
88 */
89 void emitSubstituteResources(SkWStream* stream, bool firstPage);
90 82
91 private: 83 private:
92 struct Rec { 84 struct Rec {
93 Rec(SkPDFObject* object, bool onFirstPage) 85 Rec(SkPDFObject* object, bool onFirstPage)
94 : fObject(object), 86 : fObject(object),
95 fFileOffset(0), 87 fFileOffset(0),
96 fObjNumAssigned(false), 88 fObjNumAssigned(false),
97 fOnFirstPage(onFirstPage) { 89 fOnFirstPage(onFirstPage) {
98 } 90 }
99 SkPDFObject* fObject; 91 SkPDFObject* fObject;
(...skipping 23 matching lines...) Expand all
123 // Next object number to assign (on page > 1). 115 // Next object number to assign (on page > 1).
124 uint32_t fNextObjNum; 116 uint32_t fNextObjNum;
125 // Next object number to assign on the first page. 117 // Next object number to assign on the first page.
126 uint32_t fNextFirstPageObjNum; 118 uint32_t fNextFirstPageObjNum;
127 119
128 SkPDFDocument::Flags fDocumentFlags; 120 SkPDFDocument::Flags fDocumentFlags;
129 121
130 int findObjectIndex(SkPDFObject* obj) const; 122 int findObjectIndex(SkPDFObject* obj) const;
131 123
132 int assignObjNum(SkPDFObject* obj); 124 int assignObjNum(SkPDFObject* obj);
133
134 SkTSet<SkPDFObject*>* getSubstituteList(bool firstPage);
135 }; 125 };
136 126
137 #endif 127 #endif
OLDNEW
« no previous file with comments | « no previous file | src/pdf/SkPDFCatalog.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698